2014-10-08 69 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

相关问题