2013年12月22日 星期日

[.NET] TimeZone與TimeZoneInfo類別使用記錄

說明:
1. TimeZone類別:用來擷取目前時區的資訊,或本地時間與UTC的互轉適用,但無法用TimeZone來表示本地時區以外的時區,或處理不同時區的轉換,因此,MSDN建議盡量用TimeZoneInfo來代替TimeZone。

例:
//取得目前電腦的時區
TimeZone tzLocal = TimeZone.CurrentTimeZone;
// 轉UTC
DateTime dtNow = DateTime.Now
DateTime dtUTC = tzLocal.ToUniversalTime(dtNow);


2. TimeZoneInfo類別:
主要可定義各地時區,並互相轉換,並可追溯到歷史日光節約時間。

例:
//定義各地時區物件
TimeZoneInfo tziEST = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
TimeZoneInfo tziTST = TimeZoneInfo.FindSystemTimeZoneById("Taipei Standard Time");
TimeZoneInfo tziUTC = TimeZoneInfo.FindSystemTimeZoneById("UTC");
TimeZoneInfo tziLocal = TimeZoneInfo.Local;

// Convert EST to TST by ConvertTime(datetime, source時區, destination時區)
DateTime dtNow = DateTime.Now;
DateTime dtTST = TimeZoneInfo.ConvertTime(dtNow, tziEST, tziTST);


參考資料:
http://msdn.microsoft.com/zh-tw/library/bb384268(v=vs.90).aspx
http://msdn.microsoft.com/zh-tw/library/system.timezone(v=vs.90).aspx
http://msdn.microsoft.com/zh-tw/library/system.timezoneinfo(v=vs.90).aspx
http://msdn.microsoft.com/zh-tw/library/vstudio/bb397767(v=vs.100).aspx
http://msdn.microsoft.com/zh-tw/library/vstudio/bb397765(v=vs.100).aspx

http://www.timeanddate.com/worldclock/city.html?n=805

沒有留言:

張貼留言