天天看点

Python指定时区日期和时间戳转换

由日期得到时间戳

import datetime
import pytz

tz = pytz.timezone('Asia/Shanghai')
now = datetime.datetime.now(tz)
print(now.timestamp())

# 使用datetime.datetime定义实例时,使用pytz的时间区有部分误差,未找到原因
tz = datetime.timezone(datetime.timedelta(hours=8))
dt = datetime.datetime(2021, 6, 14, 0, 0, 0, 0, tzinfo=tz)
print(dt.timestamp())
           

由时间戳得到日期

import pytz
import datetime

ts = 1623600000
tz = pytz.timezone('Asia/Shanghai')
dt = datetime.datetime.fromtimestamp(ts, tz)
print(dt.strftime('%Y-%m-%d %H:%M:%S'))

tz = datetime.timezone(datetime.timedelta(hours=8))
dt = datetime.datetime.fromtimestamp(ts, tz)
print(dt.strftime('%Y-%m-%d %H:%M:%S'))