时区信息和国家代码

7

我希望实现一个函数,其签名类似于以下内容:

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 我也非常希望能够获取给定国家的有效时区。 - Andrew Barrett
1个回答

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接