Python конвертировать отклонения часовых поясов - PullRequest
0 голосов
/ 03 ноября 2018

Я хочу использовать Python для преобразования времени в UTC и сравнения их. В моем эксперименте время в Токио имеет отклонение, и я не знаю, является ли это ошибкой моего подхода или ошибкой?

код

#!/usr/bin/env python3

import datetime

tz = pytz.timezone("Asia/Tokyo")
date = datetime.datetime.strptime(
    '12:00',
    '%H:%M'
)
date_with_tz = tz.localize(date)
print("Time in Tokyo\t\t: ", date_with_tz.strftime('%H:%M'))

date_as_utc = date_with_tz.astimezone(pytz.utc)
print("Time Tokyo in UTC\t: ", date_as_utc.strftime('%H:%M'))

print("Should 12 (Tokyo) -> 3 (UTC)")

выход

❯ ./time_zone.py
Time in Tokyo           :  12:00
Time Tokyo in UTC       :  02:41

Время UTC должно быть 3, а не 2:41 ... что здесь происходит?

1 Ответ

0 голосов
/ 03 ноября 2018

В этом случае вам не нужно использовать локализацию.

import datetime, pytz

tokyo = datetime.datetime.now(pytz.timezone("Asia/Tokyo")).replace(hour=12, minute=0, second=0)
utc = tokyo.astimezone(pytz.utc)

print("Time Tokyo:", tokyo.strftime('%H:%M'))
print("Time UTC:", utc.strftime('%H:%M'))
print("Should 12 (Tokyo) -> 3 (UTC)")
...