2010-10-08 111 views
13

我使用這個最新的時間字符串轉換爲unix時間戳:python - strtotime相當於?

str(int(time.mktime(time.strptime(date,"%d %b %Y %H:%M:%S %Z")))) 

但是往往日期結構是不是,所以我不斷收到以下錯誤消息相同:

時間數據不匹配格式:數據=星期二,2009年5月26日十九時58分20秒-0500 FMT =%d%b%Y%H:%M:%S%Z

有誰知道任何簡單函數將日期/時間的字符串表示形式轉換爲pytho中的unix時間戳N +我真的不想打開一個過程來調用一個PHP腳本來回顯時間戳每次在循環:)

+0

你是說你的字符串的格式不同從調用到調用?你想讓這個函數爲你檢測字符串的格式嗎? – Ray 2010-10-08 20:26:06

+0

是的,這就是他所說的。提交者習慣於PHP的strtotime,其中包括這種日期格式自動檢測啓發式。 – 2010-10-08 20:31:11

+1

爲什麼str(int(...))在表達式的周圍? Python中的Unix時間戳通常作爲允許小數秒的浮點數傳遞;除非因爲某些原因需要直接打印時間戳,否則不應將其轉換爲字符串。 – 2010-10-08 20:37:57

回答

27
from dateutil.parser import parse 

parse('Tue, 26 May 2009 19:58:20 -0500').strftime('%s') 

# returns '1243364300' 
+12

這似乎是對第三方模塊的引用:http://labix.org/python-dateutil。據我所知,沒有簡單的方法來解析Python標準庫中未知格式的日期字符串。 – 2010-10-08 20:28:55

+0

回答了我的問題,對我來說第三方模塊可以。 – Joe 2010-10-08 20:42:36

+0

這很甜。感謝您將它引入我的注意! – Andbdrew 2012-04-09 20:07:52