如何通过给出/考虑时区将日期和时间转换为时间戳



我正在尝试将日期和时间转换为不同时区的时间戳。

考虑我有一个字符串2015-07-24T19:23:49+0530.在这里,我可以得到年(2015),月(07),日期(24),小时(19),分钟(23),秒(49)。

最后是时区(530 表示 IST)。

我的问题是。

  1. 将上述日期转换为时间戳是否取决于时区?
  2. 如果是,如何将上述日期转换为 UTC?

我试过了:

>>> dt = datetime(2015,03,19,20,18,15)
>>> timestamp = (dt - datetime(1970, 1, 1)).total_seconds()
>>> timestamp
1426796295.0

在上面的代码中,它正在考虑本地时区。在哪里可以传递时区以获得正确的 UTC 时间?

我没有尝试将本地时间转换为 UTC 时间戳。实际上,字符串也可能包含其他时区。前任:

2015-07-24T19:23:49+0530 #-> This is for Indian timezone.
2015-07-24T19:23:49+0300 #-> This is Istanbul timezone.

但两个时区的 UTC 时间戳会有所不同。

我的问题是:如何通过考虑时区来获取UTC时间戳。

在使用

datetime.strptime 解析字符串时,您可以使用时区的 %z 指令:

from datetime import datetime
ist = '2015-07-24T19:23:49+0300'
dt_ist = datetime.strptime(ist, '%Y-%m-%dT%H:%M:%S%z')
print(dt_ist.year, dt_ist.month, dt_ist.day, dt_ist.tzinfo) 
# 2015 7 24 UTC+03:00

但是,该指令并不保证适用于所有机器

相关内容

  • 没有找到相关文章

最新更新