我有一个ssh Linux机器并在其上运行date命令,并以字符串格式返回Linux机器日期的功能。当我尝试将该字符串转换为日期时间格式时,出现错误:
字符串未被识别为有效的DateTime
以下是我的代码:
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日期时间转换为本地计算机日期时间格式(不是硬编码格式)。
答案 0 :(得分:1)
指定date
命令的格式:
date +%Y%m%d%H%M%S
并使用与该格式等效的C#将字符串解析回DateTime
:
DateTime appservertime = DateTime.ParseExact(
GetLinuxServerTime(kvp.Value), "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
像这样:
DateTime appservertime = DateTime.ParseExact(
GetLinuxServerTime(kvp.Value), "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
public string GetLinuxServerTime(string ip)
{
using (var client = new SshClient(ip.Trim(), UserName, Password))
{
client.Connect();
SshCommand x = client.RunCommand("date +%Y%m%d%H%M%S");
string a = x.Result.ToString();
client.Disconnect();
return a;
}
}