是否有任何交付的方法需要占用UTC的时区偏移量并在C#中计算时区?

Sat*_*Sat 3 c# asp.net timezone datetime

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

C#中是否有一个函数可以获取UTC的时区偏移量并计算时区(三个字符,如CST,EST,PST)?

Mat*_*int 5

否。无论哪种语言,这都是不可能的要求,因为:

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

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

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

    一年甚至有一个小时,EST和CDT完全同时生效。例如,这发生在2014年11月2日,美国东部标准时间凌晨1:00和CDT凌晨1:00 都同时生效,并且都使用了UTC-5偏移量。

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

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

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

您可能应该阅读时区标签Wiki,并且您可能也对此文章感兴趣。

  • 还要考虑太平洋时区在夏令时期间使用“ -07:00”,但是亚利桑那州的大多数地区(在山区时区中)都不使用夏令时,并且全年偏移量为“ -07:00” 。因此,如果您在夏季从服务中获得的值为“ -07:00”,则可能表示PDT或MST。 (2认同)