我有一個表中的字段與varchar數據類型,其中包含時間1800 + 0100,我怎麼能顯示它像這樣的格林威治標準時間19:00?有沒有C#方法需要1800 + 0100的時間並轉換爲19:00?我想顯示的時間格林威治標準時間從(1800 + 0100)
在此先感謝。任何幫助將不勝感激。
我有一個表中的字段與varchar數據類型,其中包含時間1800 + 0100,我怎麼能顯示它像這樣的格林威治標準時間19:00?有沒有C#方法需要1800 + 0100的時間並轉換爲19:00?我想顯示的時間格林威治標準時間從(1800 + 0100)
在此先感謝。任何幫助將不勝感激。
如果你的時間實際上是在ISO-8601 format,那麼你可以這樣做:
DateTime dt = DateTime.ParseExact("1800+0100", "HHmmzzz", null,
DateTimeStyles.AdjustToUniversal);
Console.WriteLine(dt.TimeOfDay); // 17:00:00
但是請注意,這(正確)輸出「17:00:00」,不「19:00:00 「。
如果你的字符串不是ISO-8601格式 - 和「1800 + 0100」真的是代表19:00 GMT - 那麼你就需要手動解析字符串,或可能預 - 在將它傳遞給ParseExact
之前處理它。也許是這樣的:
string s = "1800+0100";
string temp = s.Substring(0, 4) + ((s[4] == '+') ? '-' : '+') + s.Substring(5);
DateTime dt = DateTime.ParseExact(temp, "HHmmzzz", null,
DateTimeStyles.AdjustToUniversal);
Console.WriteLine(dt.TimeOfDay); // 19:00:00
DateTime
類爲DateTime
對象支持Add
methods對象。您可以通過添加任何您想要的時間單位將一次轉換爲另一次。
您可以使用DateTimeOffset。您從constructing開始的時間和偏移量的實例,然後只需獲取UtcDateTime屬性。
要小心的是,英國只在夏天使用GMT(UniversalTime)在冬季和夏季的時間。
1800 + 0100實際上是17:00 GMT,*不是* 19:00。 – LukeH 2011-02-02 10:21:27
它UTC夠好嗎? – 2011-02-02 10:23:05