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

Abh*_*hek 8 nodatime

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

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

var london = DateTimeZoneProviders.Tzdb["Europe/London"];
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

Jon*_*eet 14

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

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

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

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