我有格式爲'Mon Feb 15 2010'的日期字符串。我想將格式更改爲'15/02/2010'。我怎樣才能做到這一點?解析日期字符串和更改格式
回答
datetime
模塊可以幫你:
datetime.datetime.strptime(date_string, format1).strftime(format2)
datetime.datetime(2010年2月15日星期一,「%a%b% d%Y「)。strftime(」%d /%m /%Y「) 它是正確的嗎?但我得到了一個錯誤。 – Nimmy
@nimmyliji:你看到了「字符串」部分,對吧? –
@nimmyliji:在您發表評論前10分鐘已修復。當然你應該把'date_string'作爲一個字符串。 – SilentGhost
使用日期時間庫 http://docs.python.org/library/datetime.html查找9.1.7。 especiall strptime()的strftime()Behavior¶ 例子 http://pleac.sourceforge.net/pleac_python/datesandtimes.html
對上述錯誤nimmyliji你應該做 datetime.datetime.strptime(「星期一2010年2月15日」,「% A%b%d%Y 「)。的strftime(」 %d /%米/%Y「) 它給'15/02/2010' –
>>> from_date="Mon Feb 15 2010"
>>> import time
>>> conv=time.strptime(from_date,"%a %b %d %Y")
>>> time.strftime("%d/%m/%Y",conv)
'15/02/2010'
您可以安裝dateutil庫。它的parse
函數可以找出字符串的格式,而不必像datetime.strptime
那樣指定格式。
from dateutil.parser import parse
dt = parse('Mon Feb 15 2010')
print(dt)
# datetime.datetime(2010, 2, 15, 0, 0)
print(dt.strftime('%d/%m/%Y'))
# 15/02/2010
dateutil.parse是如果一個更好的選擇法律ISO串的精確格式是未知的。 ISO可能包含或不包含微秒。它可能包含或不包含尾隨的「Z」。 datetime.strptime不夠靈活以適應這一點。 –
請謹慎使用Pase Date。解析('12 .07.2017 ')返回日期時間(2017年,12,7,...),但解析('13 .07.2017')返回.datetime(2017年,7,13,...) – ego2dot0
字符串轉換爲DateTime對象
from datetime import datetime
s = "2016-03-26T09:25:55.000Z"
f = "%Y-%m-%dT%H:%M:%S.%fZ"
datetime = datetime.strptime(s, f)
print(datetime)
output:
2016-03-26 09:25:55
剛剛完成的緣故:解析使用strptime()
的日期時,日期包含名每天,一個月等,做到心中有數你必須考慮到語言環境。
它在docs中也作爲腳註提及。
舉個例子:
import locale
print(locale.getlocale())
>> ('nl_BE', 'ISO8859-1')
from datetime import datetime
datetime.strptime('6-Mar-2016', '%d-%b-%Y').strftime('%Y-%m-%d')
>> ValueError: time data '6-Mar-2016' does not match format '%d-%b-%Y'
locale.setlocale(locale.LC_ALL, 'en_US')
datetime.strptime('6-Mar-2016', '%d-%b-%Y').strftime('%Y-%m-%d')
>> '2016-03-06'
由於這個問題來的時候,這裏是簡單的解釋。
datetime
或time
模塊有兩個重要功能。
- 的strftime - 創建從datetime或時間對象的日期或時間的字符串表示。
- strptime - 根據字符串創建日期時間或時間對象。
在這兩種情況下,我們都需要一個格式化字符串。它是表示如何在您的字符串中格式化日期或時間。
現在讓我們假設我們有一個日期對象。
>>> from datetime import datetime
>>> d = datetime(2010, 2, 15)
>>> d
datetime.datetime(2010, 2, 15, 0, 0)
如果我們想在格式'Mon Feb 15 2010'
>>> s = d.strftime('%a %b %d %y')
>>> print s
Mon Feb 15 10
創建從這個日期的字符串讓我們假設我們希望這個s
再次轉換爲datetime
對象。
>>> new_date = datetime.strptime(s, '%a %b %d %y')
>>> print new_date
2010-02-15 00:00:00
請參閱This記錄關於日期時間的所有格式化指令。
- 1. 從字符串更改日期格式
- 2. 更改日期字符串的格式
- 3. php格式解析和更改。日期格式總是兩個字符
- 4. 在Java中格式化和解析日期和字符串
- 5. 的ColdFusion - 解析字符串日期到日期時間格式
- 6. 用不同的日期格式解析日期字符串
- 7. 解析字符串日期格式爲(yyyy.MM.dd HH.mm.ss.S)格式
- 8. 日期解析字符串
- 9. 解析字符串日期
- 10. 解析日期字符串
- 11. 解析字符串,日期
- 12. 解析日期字符串
- 13. 解析日期字符串
- 14. 如何將MySQL日期格式更改爲字符串日期
- 15. 解析和格式日期
- 16. 解析字符串爲日期時間格式「日,月dat,年」
- 17. 日期和時間字符串解析
- 18. 從字符串到日期格式的日期更改格式3
- 19. 解析日期字符串(字符串轉換爲日期)
- 20. 創建字符串格式的當前日期和解析,以日期字符串中的Apex
- 21. 字符串日期格式
- 22. 格式字符串日期
- 23. 日期字符串格式
- 24. 解析字符串日期時間與格式「MMMM YYYY」
- 25. 無法解析字符串簡單的日期格式
- 26. 無法解析字符串日期格式
- 27. 日期時間解析從字符串指定格式
- 28. JavaScript的解析會識別什麼字符串日期格式?
- 29. 解析字符串日期與國家格式的時區
- 30. 如何將字符串解析爲日期時間格式
所有這些的副本:http://stackoverflow.com/search?q=%5Bpython%5D+parse+date。這個完全重複的thise:http://stackoverflow.com/questions/1713594/parsing-dates-and-times-from-strings-using-python –
可能的重複[如何將日期字符串轉換爲不同格式的python]( http://stackoverflow.com/questions/14524322/how-to-convert-a-date-string-to-different-format-in-python) – Pureferret