2013-10-19 33 views
1

这可以做任何方式更pythonic?日期从字符串到datetime.date python

>>> import datetime 
>>> date = '20131018' 
>>> date 
'20131018' 
>>> year, month, day = date[0:4], date[4:6], date[6:] 
>>> datetime.date(int(year), int(month), int(day)) 
datetime.date(2013, 10, 18) 

感谢

回答

4

的Python已经有日期时间包从字符串分析日期,即datetime.datetime.strptime的内置方式:

>>> from datetime import datetime as dt 
>>> date = '20131018' 
>>> dt.strptime(date, "%Y%m%d").date() 
datetime.date(2013, 10, 18) 

到所有可用的格式/解析见the docs选项。

+3

'strptime'返回一个'datetime',而不是'date',如你的例子所示。你需要在新创建的datetime:'dt.strptime(date,“%Y%m%d”)。date()'上调用'date()'。 –

+1

@StevenRumbalski - 有效的点 - 我已经更新了我的答案。谢谢! –