我正在调用一项服务,该服务对给定地址进行标准化,并以 UTC 偏移量(例如:-5:00 等)给出结果的时区。
C#中有没有一个函数可以接受UTC的timezoneoffset并计算时区(三个字符,例如CST,EST,PST)?
最佳答案
没有。这在任何语言中都是不可能的请求,因为:
许多不同的时区共享相同的时差。
时区缩写没有标准。有很多重叠和歧义。例如,“CST”至少有 5 种不同的含义,我知道。
即使您将自己限制在美国,也无法可靠地区分抵消。例如,-5 可能是 EST,也可能是 CDT。
每年甚至有一个小时 EST 和 CDT 同时生效。例如,这发生在 2014 年 11 月 2 日,美国东部时间凌晨 1:00 和美国中部夏令时间凌晨 1:00 were both in effect simultaneously , 并且都使用了 UTC-5 偏移量。
I am calling a service which standardizes a given address and also gives timezone of the result in UTC offset (ex: -5:00 etc).
除非该服务返回特定日期和时间的偏移量,否则它可能在骗您。也许它正在返回 current 偏移量,但这不是固定的。同一位置可以循环通过多个不同的偏移量。
IMO,此类服务不应尝试解析偏移量,而应返回时区标识符,例如 America/New_York
。
您可能应该阅读 timezone tag wiki , 你可能也有兴趣 in this post .
关于c# - 是否有任何传递的方法接受 UTC 的时区偏移量并在 C# 中计算时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22159386/