加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – TimeZoneInfo和国家/地区代码

发布时间:2020-12-15 07:41:39 所属栏目:百科 来源:网络整理
导读:我正在寻找一个带有如下签名的函数: bool IsTimeZoneValid(string countryCode,DateTime localTime); 目的是确定该国家是否具有当地时间有效的时区,因为我们知道当前的UTC时间.让我们说,为了论证,“有效”意味着当转换为UTC时,时间比我们认为的时间早30分钟
我正在寻找一个带有如下签名的函数:
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类,如果我知道特定国家/地区存在哪些时区,它可以为我做很多转换,但我似乎无法找到任何内置查找.我错过了什么,或者我将不得不手动创建一个国家/地区到时区映射表?

重申一下,我的问题是:鉴于国家代码,我如何获得时区列表.或者,还有另一种方法可以解决这个问题吗?

解决方法

默认情况下,Windows仅为您的本地时区添加时区信息,这可能是问题的原因.

此类仅适用于本地时区和任何预定义时区.如果要将其用于其他时区,则必须将注册表设置添加到计算机以用于所需的所有时区,或使用CreateCustomTimeZone创建自定义时区信息.

http://msdn.microsoft.com/en-us/library/system.timezoneinfo.aspx?ppud=4
http://msdn.microsoft.com/en-us/library/bb384268.aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读