【发布时间】:2023-03-18 05:35:01
【问题描述】:
我有一个 ssh Linux 机器并在其上运行 date 命令的功能,并以字符串格式返回 Linux 机器日期。当我尝试将该字符串转换为日期时间格式时,会出现错误:
字符串未被识别为有效的日期时间
以下是我的代码:
DateTime appservertime = Convert.ToDateTime(GetLinuxServerTime(kvp.Value));
public string GetLinuxServerTime(string ip)
{
using (var client = new SshClient(ip.Trim(), UserName, Password))
{
string a = "";
client.Connect();
SshCommand x = client.RunCommand("date");
a = x.Result.ToString();
//a.value= Tue Jun 19 11:54:34 EDT 2018
client.Disconnect();
return a;
}
}
我需要将Linux日期时间转换成本地机器日期时间格式(不是硬编码格式)。
【问题讨论】:
-
你可以使用DateTime.ParseExact()。
-
实际上,我正在开发将部署在生产服务器上的windows服务,不同的服务器可能有不同的时间格式。所以,不能在 DateTime.ParseExact 中指定格式。 @itsme86
-
GetLinuxServerTime(kvp.Value)方法的返回值到底是多少?你应该调试你的代码并告诉我们。 -
为什么不简单点,在linux机器上设置ntpd呢?
标签: c# linux windows datetime ssh