在纽约市的服务器上运行的Python脚本从websocket API接收实时数据流,其中只给出了时间,例如:8:21:56
。提供的时间位于时区Asia/Chongqing
UTC +08:00
。本地服务器位于America/New_York
的时区UTC -05:00
。
这意味着两个时区的日期每天12-13小时不同,具体取决于夏令时。
问题:了解我的服务器位于不同的时区,如何找到将时间转换为适当的日期时间所需的日期?例如:如果服务器上的本地日期为2015-12-05
,请在UTC时区中将8:21:56
转换为2015-12-06 7:36:56.000Z
。
答案 0 :(得分:0)
America/New_York
和许多其他时区一样,不同的日期可能会有不同的 utc偏移量。
在一个时区(Asia/Chongqing
)中获取与该时区内给定时间('8:21:56'
)相对应的日期({ {1}})假设您知道另一个时区(Asia/Chongqing
)中的日期,您应该创建一个类似于pytz's .localize()
method的算法,其中困难的部分是将本地时间转换为UTC 并非总是可行 - 其余部分很简单(如果您知道UTC日期/时间和区域ID,例如America/New_York
那么很容易(Asia/Chongqing
)在utc_dt.astimezone(tz).date()
获取约会。
如果您只需要在给定的日期范围内支持固定数量的时区,则可以简化算法。