2013-10-03 26 views
1

我有一個DateTime dt,它具有某個本地時間的日期和時間以及一個指定該日期時間的時區名稱的String tz。如何獲得完全代表DateTime的DateTimeOffset結構?從未指定的DateTime和時區名稱生成DateTimeOffset

我可以得到TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById(csf.TimezoneName);

的時區信息,但我現在不能確定如何獲得的DateTimeOffset我這兩個元素

+0

http://msdn.microsoft.com/en-us/library/system.datetimeoffset.aspx –

+0

我想它('TimeZoneInfo')有一個'BaseUtcOffset'屬性 – V4Vendetta

+0

BaseUtcOffset的問題在於它沒有'將DST存入帳戶 – Martijn

回答

2

你可以在一個特定的區域轉換本地時間到DateTimeOffset希望像這樣:

DateTime dt = new DateTime(2013, 1, 1, 0, 0, 0); 
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); 
DateTimeOffset dto = new DateTimeOffset(dt, tzi.GetUtcOffset(dt)); 

要知道,如果輸入的時間不明確或無效的,由於daylight saving time,它將使用區域的標準偏移。

相關問題