pytz 格式化北京时间 6分钟问题
2018-03-02 12:00 cmsd 阅读(1485) 评论(0) 编辑 收藏 举报使用datetime直接构造时间的时候,设置时区是没有北京时间的,一般来说习惯了linux的同志都会默认用上海时间来代替,这里却有一个问题,如果要进行时区转换,上海时间比北京时间差6分钟。。。 比如: tz = pytz.timezone('Asia/Shanghai') t = datetime.datetime(2015, 9, 5, 9, 0, 0, 0, tzinfo=tz) 这样打印出来得到的时间是: 2015-09-07 09:00:00+08:06 在django框架中,貌似from django.utils.timezone import localtime的这个localtime会修正那6分钟,这问题就来了,要自己在程序里构造时间,并且跟用这个localtime转化的时间对比的时候巨麻烦。 解决方法: tz = pytz.timezone('Asia/Shanghai') t = datetime.datetime(start_time.year, start_time.month, start_time.day, 9, 0, 0, 0) t = tz.localize(t) 这样打印出来的就没有那个讨厌的:06了。 2015-09-07 09:00:00+08:00