在Python中为时间指定日期

时间:2015-12-06 00:38:09

标签: python python-2.7 datetime websocket

在纽约市的服务器上运行的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

1 个答案:

答案 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()获取约会。

如果您只需要在给定的日期范围内支持固定数量的时区,则可以简化算法。