我有以下工作代码:
import datetime
d = "2012-12-19"
f = map(int, d.split('-') )
day = datetime.date( f[0], f[1], f[2] )
print day
但是当我尝试这样写时:
day = datetime.date( f )
我得到一个异常:TypeError:需要一个整数
为什么会这样,我怎样才能写得更好?
我有以下工作代码:
import datetime
d = "2012-12-19"
f = map(int, d.split('-') )
day = datetime.date( f[0], f[1], f[2] )
print day
但是当我尝试这样写时:
day = datetime.date( f )
我得到一个异常:TypeError:需要一个整数
为什么会这样,我怎样才能写得更好?
最好是使用以下datetime.strptime()
方法:
datetime.datetime.strptime(d, '%Y-%m-%d').date()
演示:
>>> import datetime
>>> d = "2012-12-19"
>>> datetime.datetime.strptime(d, '%Y-%m-%d').date()
datetime.date(2012, 12, 19)
但是,您没有通过f[0]
等,如果您这样做了,您的方法会起作用,或者:
datetime.date(*f)
打包参数列表,而不是按date()
原样传递:
day = datetime.date(*f)
好吧,至少这更具可读性:
day = datetime.date(year=f[0], month=f[1], day=f[2])