【发布时间】:2010-11-16 10:53:49
【问题描述】:
我希望实现一个具有如下签名的函数:
bool IsTimeZoneValid(string countryCode, DateTime localTime);
鉴于我们知道当前的 UTC 时间,其目的是确定该国家/地区是否有一个本地时间有效的时区。假设为了争论,“有效”意味着当转换为 UTC 时,时间与我们认为的时间相差 +/- 30 分钟。
例如,假设现在是 03/08/2009 18:25:00 UTC,然后给定澳大利亚的以下方法调用,它应该返回 true,因为这是“东部标准时间”区域中的有效时间:
IsTimeZoneValid("AU", DateTime.Parse("04/08/2009 03:25:00"));
但是,以下对法国的调用应该会失败,因为这不是法国时区的有效时间。
IsTimeZoneValid("FR", DateTime.Parse("04/08/2009 03:25:00"));
这需要准确,并考虑到夏令时等。
.NET 3.5 包含新的 TimeZoneInfo 类,如果我知道特定国家/地区存在哪些时区,它可以为我做很多转换,但我似乎找不到任何内置查找.我是否遗漏了什么,或者我必须手动创建一个国家/地区到时区映射表?
重申一下,我的问题是:给定国家代码,我如何获得时区列表。或者,是否有另一种我错过的方法来解决这个问题?
【问题讨论】:
-
+1 我也非常希望能够获得给定国家/地区的有效时区。
标签: c# .net timezone country-codes