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", )