是否有任何传递的方法接受UTC的timezoneoffset并在C#中计算时区?

时间:2014-03-03 23:00:33

标签: c# asp.net datetime timezone

我正在调用一个标准化给定地址的服务,并以UTC偏移量给出结果的时区(例如:-5:00等)。

C#中是否有一个函数接受UTC的timezoneoffset并计算时区(CST,EST,PST等三个字符)?

2 个答案:

答案 0 :(得分:4)

没有。这是任何语言都不可能的要求,因为:

  1. 许多不同的时区共享相同的偏移量。

  2. 时区缩写没有标准。有很多重叠和含糊不清。例如,“CST”至少有5种不同的含义,我知道。

  3. 即使您将自己限制在美国,也无法可靠地区分偏移量。例如,-5可以是EST,也可以是CDT。

    每年甚至有一个小时的EST和CDT在同一时间同时生效。例如,这发生在2014年11月2日美国东部时间上午1:00和CDT {1}上午1:00,并且都使用了UTC-5偏移量。

  4.   

    我正在调用一个标准化给定地址的服务,并以UTC偏移量给出结果的时区(例如:-5:00等)。

    除非服务返回特定日期和时间的偏移 ,否则它可能对您撒谎。也许它返回当前偏移量,但这不是固定的。相同的位置可以循环通过多个不同的偏移量。

    IMO,此类服务不应尝试解析偏移,而应返回时区标识符,例如America/New_York

    您应该阅读were both in effect simultaneously,您可能也会感兴趣timezone tag wiki

答案 1 :(得分:-1)

如果有可能在C#中这样做,我会认为NODA Time会这样做。