2014-10-08 160 views
4

如何將日期時間轉換爲不同的時區? DateTime類有兩個方法.toLocal()和.toUtc()。 但是,如果我想在另一個時區顯示時間。我該怎麼做?如何將日期時間轉換爲不同的時區?

+0

*** [LOOK](http://stackoverflow.com/a/18021707/645128)***這裏(引用Java腳本) – ryyker 2014-10-08 13:00:31

回答

0

您可以使用TimeZoneInfo.ConvertTime()更改時區。試着這樣

DateTime hwTime = new DateTime(2007, 02, 01, 08, 00, 00); 
try { 
    TimeZoneInfo hwZone = TimeZoneInfo.FindSystemTimeZoneById("Hawaiian Standard Time"); 
    TimeZoneInfo.ConvertTime(hwTime, hwZone, TimeZoneInfo.Local)); 
} 
catch (TimeZoneNotFoundException) { 
    Console.WriteLine("Timezone not found"); 
}       
catch (InvalidTimeZoneException) { 
    Console.WriteLine("Invalid Timezone"); 
} 

這將從夏威夷標準時間轉換爲本地。

這只是一個例子。使用它來根據您的需要進行轉換。

+0

你在哪裏找到'TimeZoneInfo'類? – 2014-10-08 13:12:46

+0

這是用於JavaScript的? – 2014-10-08 13:27:34

+0

以下是有關如何自行實施的舊討論:https://groups.google.com/a/dartlang.org/forum/?fromgroups#!searchin/misc/offsetdate/misc/9RXTZSDDE9E/tIHOv​​mGXXo8J – 2014-10-09 07:26:12

2

DateTime不包含時區信息,因此您不能在特定的時區中創建DateTime只有系統和UTC的時區可用。

您可以將DateTime包裝在自定義類中,並將時區信息添加到包裝中。您還需要每個時區的偏移量表,然後添加/減去UTC日期的偏移量。

+0

新包裝彈出在pub.dartlang.org似乎這樣做:https://pub.dartlang.org/packages/timezone – 2014-10-17 06:12:56

相關問題