我試圖獲取遠程系統時間(基於another post),並最終與本地系統時間設置爲相同的遠程系統時間。但我「想要做的值的一些顯示和數據的時間值的差異(本地VS遠程的)。但是,當我嘗試做遠程系統輸出我得到一個錯誤的日期格式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);
}
雖然這確實工作之類的,這個問題是遠程時間被讀爲週三11月17日10:29:00 2010'或者我有多麼格式說'DDD MMM DD HH:MM:SS YYY '。所以,當它嘗試'TryParse'失敗並跳過它。 – 2010-11-17 15:30:37
即使通過ToString格式也有3年轉換爲4位數字。 yyy'的'如何輸出爲4位必須 – skyfoot 2010-11-17 17:24:16
奇怪,我完全匹配的值傳遞,但解析它,你必須通過'yyyy'。從來沒有,你知道了。 – 2010-11-17 18:01:33