gpt4 book ai didi

c# - TimeZoneInfo 和国家代码

转载 作者:太空狗 更新时间:2023-10-29 20:29:37 26 4
gpt4 key购买 nike

我希望实现一个带有如下签名的函数:

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

关于c# - TimeZoneInfo 和国家代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1223612/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com