我有一个简单的时间戳,我需要将其转换为tzutc()
的日期以便计算时间增量。
我使用
将字符串转换为Datepd.Timestamp(x)
然后使用
将其转换为UTC。pytz.utc.localize(x)
并得到:
Timestamp('2019-01-09 00:00:00+0000', tz='UTC')
问题是我需要与之比较的日期是
Timestamp('2018-06-07 18:13:53+0000', tz='tzutc()')
比较它们时,我得到
TypeError: Timestamp subtraction must have the same timezones or no timezones
答案 0 :(得分:0)
您可以使用HERE所示的方法将时间戳转换为日期时间。
这是一种使用pytz将日期时间从本地时间转换为UTC的方法:
def LocalToUTC(dt):
# Converts the local time to UTC
localtz = get_localzone()
if dt.tzinfo is None:
localdt = localtz.localize(dt)
else:
localdt = dt.replace(tzinfo=localtz)
utcdt = localdt.astimezone(pytz.UTC)
return utcdt
类似地,这是将任何时区转换为UTC的方法:
def TimezoneToUTC(dt, timezonestring):
# Converts from a given timezone to UTC using the timezonestring
# Example timezone string: 'Europe/Paris' OR 'America/New_York'
fromtz = pytz.timezone(timezonestring)
if dt.tzinfo is None:
localdt = fromtz.localize(dt)
else:
localdt = dt.replace(tzinfo=fromtz)
utcdt = localdt.astimezone(pytz.UTC)
return utcdt
有关所有时区字符串的列表,请使用:
>>> import pytz
>>>
>>> for tz in pytz.all_timezones:
... print tz