使用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