python datetime时区转换
比如把格林威治时间转换为上海时间:
from datetime import datetime
import pytz
print('格林威治时间: ', datetime.now().strftime("%Y-%m-%d_%H-%M-%S"))
print('上海时间: ', datetime.now().astimezone(pytz.timezone("Asia/Shanghai")).strftime("%Y-%m-%d_%H-%M-%S"))
输出:

这两个时区相差八小时。
如果要修改logging的时区和时间,可参考:如何修改 logging 时间为北京时间,下面的代码来自这个知乎文章。
import logging
import datetime
def beijing(sec, what):
beijing_time = datetime.datetime.now() + datetime.timedelta(hours=8)
return beijing_time.timetuple()
logging.Formatter.converter = beijing
logging.basicConfig(
format="%(asctime)s %(levelname)s: %(message)s",
level=logging.INFO,
datefmt="%Y-%m-%d %H:%M:%S",
)

浙公网安备 33010602011771号