5
所以我有UTC時間的日期時間對象,我想將它們轉換爲UTC時間戳。問題是,time.mktime會對本地時間進行調整。如何創建不針對本地時間調整的unix時間戳?
因此,這裏是一些代碼:
import os
import pytz
import time
import datetime
epoch = pytz.utc.localize(datetime.datetime(1970, 1, 1))
print time.mktime(epoch.timetuple())
os.environ['TZ'] = 'UTC+0'
time.tzset()
print time.mktime(epoch.timetuple())
下面是一些輸出:
Python 2.6.4 (r264:75706, Dec 25 2009, 08:52:16)
[GCC 4.2.1 (Apple Inc. build 5646) (dot 1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> import pytz
>>> import time
>>> import datetime
>>>
>>> epoch = pytz.utc.localize(datetime.datetime(1970, 1, 1))
>>> print time.mktime(epoch.timetuple())
25200.0
>>>
>>> os.environ['TZ'] = 'UTC+0'
>>> time.tzset()
>>> print time.mktime(epoch.timetuple())
0.0
所以,很顯然,如果系統在UTC時間沒有問題,但如果它不是,這是一個問題。設置環境變量並調用time.tzset可行,但安全嗎?我不想爲整個系統調整它。
是否有另一種方法可以做到這一點?或者用這種方式調用time.tzset是安全的。