您好,登錄后才能下訂單哦!
這篇文章主要講解了Python將字符串轉(zhuǎn)換為日期的方法,內(nèi)容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
問題
你的應用程序接受字符串格式的輸入,但是你想將它們轉(zhuǎn)換為 datetime 對象以便在上面執(zhí)行非字符串操作。
解決方案
使用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位數(shù)年份, %m
代表兩位數(shù)月份。 還有一點值得注意的是這些格式化占位符也可以反過來使用,將日期輸出為指定的格式字符串形式。
比如,假設你的代碼中生成了一個 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實現(xiàn),并且必須處理所有的系統(tǒng)本地設置。 如果你要在代碼中需要解析大量的日期并且已經(jīng)知道了日期字符串的確切格式,可以自己實現(xiàn)一套解析方案來獲取更好的性能。 比如,如果你已經(jīng)知道所以日期格式是 YYYY-MM-DD
,你可以像下面這樣實現(xiàn)一個解析函數(shù):
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))
實際測試中,這個函數(shù)比 datetime.strptime()
快7倍多。 如果你要處理大量的涉及到日期的數(shù)據(jù)的話,那么最好考慮下這個方案!
看完上述內(nèi)容,是不是對Python將字符串轉(zhuǎn)換為日期的方法有進一步的了解,如果還想學習更多內(nèi)容,歡迎關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。