TimeZoneInfo 類的使用
對於一個開放於全球的網站或服務,在時間上的顯示是一個問題,因為各個國家都會有所謂的時差,好在 .Net Framework 提供 TimeZoneInfo 類來解決這個問題。
TimeZoneInfo 的使用很簡單,一開始利用 FindSystemTimeZoneById 找到對應的 TimeZoneInfo 對象,就可以利用該對象來轉換時間。
下列程序是示范如何將 UTC Time 轉為東京的當地間時。
TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time"); Console.WriteLine(string.Format("UTC Time:{0}", time.ToString())); Console.WriteLine(string.Format("Tokyo Time:{0}", TimeZoneInfo.ConvertTime(time, TimeZoneInfo.Utc, timeZoneInfo)));
或許有人會問,該如何知道各個地區所對應的 id,其實利用 TimeZoneInfo.GetSystemtimeZones 就可以了。
{
Console.WriteLine(timeZoneInfo.DisplayName);
Console.WriteLine(timeZoneInfo.Id);
}
var ChTimeZone = TimeZoneInfo.FindSystemTimeZoneById("China Standard Time");
//運行出來就是當地(China Standard Time)時間Datetime.Now
DateTime ChTime = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, ChTimeZone);