將它們全部存儲爲通用時間,並轉換爲當地時區。你會發現ToUniversalTime和ToLocalTime有幫助。 下面是從MSDN示例代碼:
System.Console.WriteLine("Enter a date and time.");
string strDateTime = System.Console.ReadLine();
System.DateTime localDateTime;
try {
localDateTime = System.DateTime.Parse(strDateTime);
}
catch (System.FormatException) {
System.Console.WriteLine("Invalid format.");
return;
}
System.DateTime univDateTime = localDateTime.ToUniversalTime();
System.Console.WriteLine("{0} local time is {1} universal time.",
localDateTime,
univDateTime);
System.Console.WriteLine("Enter a date and time in universal time.");
strDateTime = System.Console.ReadLine();
try {
univDateTime = System.DateTime.Parse(strDateTime);
}
catch (System.FormatException) {
System.Console.WriteLine("Invalid format.");
return;
}
localDateTime = univDateTime.ToLocalTime();
System.Console.WriteLine("{0} universal time is {1} local time.",
univDateTime,
localDateTime);
'ToLocalTime'始終使用本機的當前時區 - 它不會讓您指定特定的時區,煩人。幸運的是,.NET 3.5通過'TimeZoneInfo'顯着改善了事情。 – 2009-12-31 18:46:17
好點。它也只關注當前的DST調整規則,而不是過去的規則,所以對於過去的日期它可能會導致轉換錯誤。您建議的'TimeZoneInfo.ConvertTime'方法似乎沒有失敗。 – jball 2009-12-31 18:49:15