pytz 格式化北京時間 6分鐘問題

使用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
相關文章
相關標籤/搜索