如何获取用作时区初始值设定项的tzdb中的字符串列表?

时间:2015-08-19 19:27:09

标签: nodatime

所以我是NodaTime的新手并尝试使用它来使用DateTimeZone对象存储时区信息。

我在下面的示例中看到了用户指南等,它给了我一个很好的来自tzdb的DateTimeZone对象,这很棒。

var london = DateTimeZoneProviders.Tzdb["Europe/London"];

我的问题是 - 如何获取tzdb中使用的时区字符串列表(" Europe / London")。我环顾四周,无处可寻。在某处我可以参考标准清单吗?这是如何运作的?恩。 - 我应该为EST传递的字符串是什么?

谢谢!

1 个答案:

答案 0 :(得分:14)

要以编程方式获取时区ID,请使用IDateTimeZoneProvider中的Ids属性。例如,要查找所有区域:

var provider = DateTimeZoneProviders.Tzdb;
foreach (var id in provider.Ids)
{
    var zone = provider[id];
    // Use the zone 
}

对于东部时间,你可能想要America / New_York。

更一般地说,这些标识符来自IANA - 它们是大多数非Windows系统中使用的标识符。