2016-04-22 146 views
1

當使用解析長字符串日期時間

import datetime 
s = 'Sat Apr 23 2016 00:00:00 GMT+0100' 
print datetime.datetime.strptime(s, "%a %m %d %y %H:%M:%S GMT+0100") 

我得到:

ValueError: time data 'Sat Apr 23 2016 00:00:00 GMT+0100' does not match format '%a %m %d %y %H:%M:%S GMT+0100'

如何分析這樣的字符串?

注:使用dateutil.parser.parse沒有工作:它產生了一些奇怪的datetime對象,我可以減去另一個日期時間,即d1 - d2沒有工作。

+0

你是什麼意思,你不能從另一個減去datetime對象?錯誤信息是什麼?我想不出任何會阻止你減去兩個日期時間的失敗模式。 – Paul

+0

不推薦將dateutil解析器用於已知的格式,但僅供參考,我懷疑問題是解析器給你一個時區感知對象。如果你想減去另一個日期時間,你可能希望它們都是時區感知的,或者都是本地的。最好的辦法就是將UTC轉換爲絕對時差。 – Paul

回答

3

this reference, 格式建議立即進行刪除d是"%a %b %d %Y %H:%M:%S GMT+0100"

2

改爲使用此:"%a %b %d %Y %H:%M:%S GMT+0100"。與%b

  • 替換%m(每月零填充小數)(月如語言環境的縮寫名稱)
  • 替換%y(全年無世紀的零填充:

    我做了兩個轉變十進制數)與%Y(一年世紀的十進制數)