如何从UTC转换为tzutc()时区?

时间:2019-06-16 20:30:34

标签: python timestamp

我有一个简单的时间戳,我需要将其转换为tzutc()的日期以便计算时间增量。

我使用

将字符串转换为Date
pd.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

1 个答案:

答案 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