您可以datetime.timedelta
使用以下方法获取偏移量:
offset = current_time.utcoffset()
然后可以从 current_time 中添加或减去偏移量以获得所需的日期时间。
import datetime as DT
import dateutil.tz as tz
import dateutil
current_time = DT.datetime.utcnow().replace(tzinfo=tz.gettz('Asia/Calcutta'))
print(current_time)
# 2013-05-12 18:33:19.368122+05:30
offset = current_time.utcoffset()
naive_time = current_time.replace(tzinfo=None)
print(naive_time)
# 2013-05-12 18:33:19.368122
print(naive_time + offset)
# 2013-05-13 00:03:19.368122
请注意,如果您想要 UTC 时间,则应减去偏移量:
print(naive_time - offset)
# 2013-05-12 13:03:19.368122
但是,获取 UTC 日期时间的一种更简单的方法是使用该astimezone
方法:
utc = dateutil.tz.tzutc()
print(current_time.astimezone(utc))
# 2013-05-12 13:03:19.368122+00:00
最后,请注意使用dateutil
和replace
设置时区并不总是返回正确的时间。以下是使用pytz的方法:
import pytz
calcutta = pytz.timezone('Asia/Calcutta')
utc = pytz.utc
current_time = calcutta.localize(DT.datetime.utcnow())
print(current_time)
# 2013-05-12 18:33:19.368705+05:30
print(current_time.astimezone(utc))
# 2013-05-12 13:03:19.368705+00:00