1

我有以下工作代码:

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:需要一个整数

为什么会这样,我怎样才能写得更好?

4

3 回答 3

5

最好是使用以下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)
于 2012-12-19T13:36:08.527 回答
1

打包参数列表,而不是按date()原样传递:

day = datetime.date(*f)
于 2012-12-19T13:35:51.430 回答
1

好吧,至少这更具可读性:

day = datetime.date(year=f[0], month=f[1], day=f[2])
于 2012-12-19T13:35:59.760 回答