Python如何將字符串轉(zhuǎn)換為日期
問題
你的應用程序接受字符串格式的輸入,但是你想將它們轉(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ù)的話,那么最好考慮下這個方案!
以上就是Python如何將字符串轉(zhuǎn)換為日期的詳細內(nèi)容,更多關于Python字符串轉(zhuǎn)換為日期的資料請關注腳本之家其它相關文章!
- 如何在Python中將字符串轉(zhuǎn)換為數(shù)組詳解
- 詳細整理python 字符串(str)與列表(list)以及數(shù)組(array)之間的轉(zhuǎn)換方法
- Python實現(xiàn)字符串與數(shù)組相互轉(zhuǎn)換功能示例
- python將字符串轉(zhuǎn)換成數(shù)組的方法
- Python中bytes字節(jié)串和string字符串之間的轉(zhuǎn)換方法
- 如何將Python字符串轉(zhuǎn)換為JSON的實現(xiàn)方法
- python 如何將帶小數(shù)的浮點型字符串轉(zhuǎn)換為整數(shù)
- 如何在Python中將字符串轉(zhuǎn)換為集合
相關文章
Python中set與frozenset方法和區(qū)別詳解
這篇文章主要介紹了Python中set與frozenset方法和區(qū)別詳解的相關資料,需要的朋友可以參考下2016-05-05使用Python實現(xiàn)計算DICOM圖像兩點真實距離
這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)計算DICOM圖像兩點真實距離,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2023-11-11Python實現(xiàn)的井字棋(Tic Tac Toe)游戲示例
這篇文章主要介紹了Python實現(xiàn)的井字棋(Tic Tac Toe)游戲,結(jié)合實例形式分析了井字棋的原理及Python相關實現(xiàn)技巧,需要的朋友可以參考下2018-01-01python實現(xiàn)scrapy爬蟲每天定時抓取數(shù)據(jù)的示例代碼
這篇文章主要介紹了python實現(xiàn)scrapy爬蟲每天定時抓取數(shù)據(jù)的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01