在 python 中将 UTC 转换为另一个时区的简单方法
Easy way to convert UTC to another timezone in python
我正在尝试将 UNIX 时间戳转换为 UTC+9。我一直在搜索几个小时,这让我对不同的库等感到困惑
这是我目前得到的
from datetime import datetime
from pytz import timezone
import datetime
time = 1481079600
utc_time = datetime.datetime.fromtimestamp(time)#.strftime('%Y-%m-%d %H:%M:%S')
print utc_time.strftime(fmt)
tz = timezone('Japan')
print tz.localize(utc_time).strftime(fmt)
这只是同时打印,我做错了什么
您的 utc_time
日期时间很天真 - 它没有与之关联的时区。 localize
为它分配一个时区,它不会在时区之间转换。最简单的方法可能是构建一个时区感知日期时间:
import pytz
utc_time = datetime.datetime.fromtimestamp(time, pytz.utc)
然后在您准备好显示时转换为您想要的时区:
print utc_time.astimezone(tz).strftime(fmt)
我要厚颜无耻地把这个我迷恋的新datetime
库Pendulum塞进去。
pip install pendulum
import pendulum
t = 1481079600
pendulum.from_timestamp(t).to_datetime_string()
>>> '2016-12-07 03:00:00'
现在可以超级快速轻松地将其更改为您的时区!
pendulum.from_timestamp(t, 'Asia/Tokyo').to_datetime_string()
>>> '2016-12-07 12:00:00'
我正在尝试将 UNIX 时间戳转换为 UTC+9。我一直在搜索几个小时,这让我对不同的库等感到困惑
这是我目前得到的
from datetime import datetime
from pytz import timezone
import datetime
time = 1481079600
utc_time = datetime.datetime.fromtimestamp(time)#.strftime('%Y-%m-%d %H:%M:%S')
print utc_time.strftime(fmt)
tz = timezone('Japan')
print tz.localize(utc_time).strftime(fmt)
这只是同时打印,我做错了什么
您的 utc_time
日期时间很天真 - 它没有与之关联的时区。 localize
为它分配一个时区,它不会在时区之间转换。最简单的方法可能是构建一个时区感知日期时间:
import pytz
utc_time = datetime.datetime.fromtimestamp(time, pytz.utc)
然后在您准备好显示时转换为您想要的时区:
print utc_time.astimezone(tz).strftime(fmt)
我要厚颜无耻地把这个我迷恋的新datetime
库Pendulum塞进去。
pip install pendulum
import pendulum
t = 1481079600
pendulum.from_timestamp(t).to_datetime_string()
>>> '2016-12-07 03:00:00'
现在可以超级快速轻松地将其更改为您的时区!
pendulum.from_timestamp(t, 'Asia/Tokyo').to_datetime_string()
>>> '2016-12-07 12:00:00'