所以我是NodaTime的新手并尝试使用它来使用DateTimeZone对象存储时区信息。
我在下面的示例中看到了用户指南等,它给了我一个很好的来自tzdb的DateTimeZone对象,这很棒。
var london = DateTimeZoneProviders.Tzdb["Europe/London"];
我的问题是 - 如何获取tzdb中使用的时区字符串列表(" Europe / London")。我环顾四周,无处可寻。在某处我可以参考标准清单吗?这是如何运作的?恩。 - 我应该为EST传递的字符串是什么?
谢谢!
答案 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系统中使用的标识符。