我試圖將時間戳格式爲20151021 | 133102 [-0400/1]轉換爲紀元時間。Python 2.7將標準unix時間戳轉換爲紀元時間
我希望代碼運行,而不管它運行的機器的本地時區,並且是DST知道的,所以代碼將通過開關運行到/從DST運行。我需要的代碼下的Python 2.7.x運行(最好只使用標準庫模塊,因此代碼爲便攜式)
浪費下午的谷歌搜索後,我已經能夠做的最好的是:
time.mktime(time.strptime('20151021|133102','%Y%m%d|%H%M%S'))`
這不允許我合併偏移量或夏令時標誌。
我也試過如下:
time.mktime(time.strptime('20151021|133102-4000','%Y%m%d|%H%M%S%z'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/_strptime.py", line 467, in _strptime_time
return _strptime(data_string, format)[0]
File "/usr/lib/python2.7/_strptime.py", line 317, in _strptime
(bad_directive, format))
ValueError: 'z' is a bad directive in format '%Y%m%d|%H%M%S%z'
但似乎strptime不允許抵銷。
strptime不支持:
time.mktime(time.strptime('20151021|133102EDT','%Y%m%d|%H%M%S%Z'))
但是這意味着我需要以某種方式轉換的偏移時區的縮寫,這似乎有點愚蠢 - 並可能製造出不同的代碼運行在那裏上的錯誤。
我不能相信這不是更簡單,因爲這個問題應該是常規。任何援助將不勝感激。
基於此工作,試用和錯誤以獲得正確的格式。 – Rob
感謝您的回覆,但這不是問題...我的代碼工作,但它不包括DST /偏移量。 – user73383