是否有任何交付的方法采用UTC的时区偏移量并以C#计算时区?
我正在呼叫一个服务,该服务标准化了给定的地址,并以UTC偏移量给出了结果的时区(例如:-5:00等)是否有任何交付的方法采用UTC的时区偏移量并以C#计算时区?,c#,asp.net,datetime,timezone,C#,Asp.net,Datetime,Timezone,我正在呼叫一个服务,该服务标准化了给定的地址,并以UTC偏移量给出了结果的时区(例如:-5:00等) 在C#中是否有一个函数,它接受UTC的时区偏移并计算时区(三个字符,如CST、EST、PST)?如果有机会在C#中这样做,我想我会这样做。否。这在任何语言中都是不可能的请求,因为: 许多不同的时区共享相同的偏移量 时区缩写没有标准。有很多重叠和模糊之处。例如,据我所知,“CST”至少有5种不同的含义 即使您将自己限制在美国,您也无法可靠地区分补偿。例如,-5可以是EST,也可以是CDT 每年甚至
在C#中是否有一个函数,它接受UTC的时区偏移并计算时区(三个字符,如CST、EST、PST)?如果有机会在C#中这样做,我想我会这样做。否。这在任何语言中都是不可能的请求,因为:
America/New_York
您可能应该阅读,并且您可能也感兴趣。小心-不可能将偏移转换为时区-某些时区重叠偏移,并且偏移与夏令时不一致。您是对的,没有正式的缩写列表。但是,TimeZoneInfo.GetSystemTimeZones将提供windows注册表中的时区列表。TimeZoneInfo没有问题中指定的缩写,但是它们有一个DisplayName和一个StandardName@Mick. 是的,关于这一点还有很多其他问题。但是我不明白这与所问的问题有什么关系。@马特,我已经联系了我们的地址服务提供商,根据他们的说法,偏移量是在给定的时间计算的。我们使用的这项服务仅限于美国。我们有一个DB表,在那里我们每年都可以节省日光灯。请让我知道,如果有什么可以帮助我通过限制我们的结果来计算时区的话。正如我在#3的回答中所说的,它仍然不可靠。如果你得到了<代码> -05:00 <代码>的结果,恰好是2014年11月2日凌晨1点到下午1点59分59分。在这种情况下,
-05:00
可以是EST或CDT。这是因为在美国,DST不会同时发生。每个时区在他们自己的本地时间中进行切换,创建一个小时,其中相邻的时区共享相同的时间,一个小时分别是2小时而不是1小时。也考虑到Pacific时区在夏时制期间使用<代码> -07:00 < /代码>,但是大部分亚利桑那州(在山峰时区)。不使用夏令时,全年的偏移量为-07:00
。因此,如果你在夏天从你的服务中得到一个值-07:00
,那么它可能意味着PDT或MST。野田佳彦很棒,但这里没有魔力。可以获取时区的偏移,但不能获取偏移的时区。