Я пытаюсь получить время удаленной системы (на основе другой пост ) и в конечном итоге установить время локальной системы равное времени удаленной системы. Но я пытаюсь сделать некоторые показы значений и разницу значений времени данных (локальный против удаленного). Но когда я пытаюсь сделать ParseExact
в формате даты, который выводит удаленная система, я получаю ошибка, что это недопустимое время даты. Теперь, когда я пытаюсь сделать это в C #, я очень открыт для другого языка, который я могу написать, используя VS 2010.
Вот код, который я использую до сих пор.
private void GetTime_Click(object sender, EventArgs e)
{
var st = DateTime.Now.ToString("ddd MMM dd hh:mm:ss yyy");
System.Net.Sockets.TcpClient t = new System.Net.Sockets.TcpClient("10.10.10.10", 13);
System.IO.StreamReader rd = new System.IO.StreamReader(t.GetStream());
var rt = rd.ReadLine();
DateTime startTime = ParseDateTime(st) ?? DateTime.Now;
DateTime endTime = ParseDateTime(rt) ?? DateTime.Now;
TimeSpan span = endTime.Subtract(startTime);
var ts = span.Seconds;
remoteTime.Text = rt;
systemTime.Text = st;
timeDiff.Text = ts.ToString();
rd.Close();
t.Close();
}
public static DateTime? ParseDateTime(string value)
{
CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US");
DateTimeStyles styles = DateTimeStyles.None;
return DateTime.ParseExact(value, "ddd MMM dd hh:mm:ss yyy", culture, styles);
}