15

UTC で datetime.time 型の時間を保持する変数があり、他のタイムゾーンに変換したかったのです。

このSOリンクに示すように、datetime.datetimeインスタンスのタイムゾーンを変換できます-How do I convert local time to UTC in Python? . datetime.time インスタンスでタイムゾーンを変換する方法がわかりません。datetime.time にはこのメソッドがないため、astimezone を使用できません。

例えば:

>>> t = d.datetime.now().time()
>>> t
datetime.time(12, 56, 44, 398402)
>>> 

UTC 形式の「t」が必要です。

4

3 に答える 3

8

一時的な日時オブジェクトを作成し、tz を変換して、時間を再度抽出します。

import datetime
def time_to_utc(t):
    dt = datetime.datetime.combine(datetime.date.today(), t)
    utc_dt = datetime_to_utc(dt)
    return utc_dt.time()

t = datetime.datetime.now().time()
utc_t = time_to_utc(t)

ここで、リンクされた質問datetime_to_utcの提案のいずれかです。

于 2013-05-17T07:41:52.960 に答える
0

pytzを使用して UTC タイムゾーンとの間で変換する簡単な方法:

import datetime, pytz

def time_to_utc(naive, timezone="Europe/Istanbul"):
    local = pytz.timezone(timezone)
    local_dt = local.localize(naive, is_dst=None)
    utc_dt = local_dt.astimezone(pytz.utc)
    return utc_dt

def utc_to_time(naive, timezone="Europe/Istanbul"):
    return naive.replace(tzinfo=pytz.utc).astimezone(pytz.timezone(timezone))

# type(naive) """DateTime"""
# type(timezone) """String"""
于 2015-02-20T13:52:26.860 に答える