1. 程式人生 > 程式設計 >Python如何將字串轉換為日期

Python如何將字串轉換為日期

問題

你的應用程式接受字串格式的輸入,但是你想將它們轉換為 datetime 物件以便在上面執行非字串操作。

解決方案

使用Python的標準模組 datetime 可以很容易的解決這個問題。比如:

>>> from datetime import datetime
>>> text = '2012-09-20'
>>> y = datetime.strptime(text,'%Y-%m-%d')
>>> z = datetime.now()
>>> diff = z - y
>>> diff
datetime.timedelta(3,77824,177393)
>>>

討論

datetime.strptime() 方法支援很多的格式化程式碼, 比如 %Y 代表4位數年份, %m 代表兩位數月份。 還有一點值得注意的是這些格式化佔位符也可以反過來使用,將日期輸出為指定的格式字串形式。

比如,假設你的程式碼中生成了一個 datetime 物件, 你想將它格式化為漂亮易讀形式後放在自動生成的信件或者報告的頂部:

>>> z
datetime.datetime(2012,9,23,21,37,4,177393)
>>> nice_z = datetime.strftime(z,'%A %B %d,%Y')
>>> nice_z
'Sunday September 23,2012'
>>>

還有一點需要注意的是, strptime() 的效能要比你想象中的差很多, 因為它是使用純Python實現,並且必須處理所有的系統本地設定。 如果你要在程式碼中需要解析大量的日期並且已經知道了日期字串的確切格式,可以自己實現一套解析方案來獲取更好的效能。 比如,如果你已經知道所以日期格式是 YYYY-MM-DD ,你可以像下面這樣實現一個解析函式:

from datetime import datetime
def parse_ymd(s):
  year_s,mon_s,day_s = s.split('-')
  return datetime(int(year_s),int(mon_s),int(day_s))

實際測試中,這個函式比 datetime.strptime() 快7倍多。 如果你要處理大量的涉及到日期的資料的話,那麼最好考慮下這個方案!

以上就是Python如何將字串轉換為日期的詳細內容,更多關於Python字串轉換為日期的資料請關注我們其它相關文章!