我正在尝试将日期和时间转换为不同时区的时间戳。
考虑我有一个字符串2015-07-24T19:23:49+0530
。
在这里,我可以得到年(2015),月(07),日期(24),小时(19),分钟(23),秒(49)。
最后是时区(530表示IST)。
我的问题是。
我试过了:
>>> 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时间戳。
答案 0 :(得分:0)
使用%z
解析字符串时,可以使用datetime.strptime
指令作为时区:
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
但是不保证该指令适用于所有机器