(转自百度知道)北京时间是属于东八时区bai的,英du文缩写 UTC+8。
北京时间并不是北京(东经116.4°)zhi的地方时间,而dao是东经120°(东八区)的地方时间,故东经120度地方时比北京的地方时早约14分半钟。因为北京处于国际时区划分中的东八区,同格林威治时间(世界时)整整相差8小时(即北京时间=世界时+8小时),故命名为“北京时间”。
测试代码:
from datetime import datetime, timedelta, timezone, time
from dateutil import tz, zoneinfo
import pytz
t = datetime.now().replace(tzinfo=timezone(timedelta(hours=8,minutes=6)))
print(t)
t = datetime.now(tz=timezone(timedelta(hours=8, minutes=6)))
print(t)
print(datetime.now())
输出:
2020-07-31 13:28:21.221145+08:06
2020-07-31 13:34:21.221145+08:06
2020-07-31 13:28:21.221145
我在使用生成带有时区信息的datetime对象时,只能用datetime.now().replace()的方式,其他的方式生成的有时区信息的datetime,要么是时区信息里面没有那个6分钟的,要么是有了那个6分钟,但是时间也会相应的加上这6分钟,,感觉这里使用的时区信息不严谨,不知道坛主是怎么生成这样的时区信息的