在Python中将2012-12-19字符串转换为datetime对象

sza*_*gab 1 python

我有以下工作代码:

import datetime

d = "2012-12-19"                
f = map(int,  d.split('-') )
day = datetime.date( f[0], f[1], f[2] )

print day
Run Code Online (Sandbox Code Playgroud)

但是当我尝试这样写时:

day = datetime.date( f )
Run Code Online (Sandbox Code Playgroud)

我得到一个异常:TypeError:需要一个整数

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

Mar*_*ers 5

最好是使用datetime.strptime()方法:

datetime.datetime.strptime(d, '%Y-%m-%d').date()
Run Code Online (Sandbox Code Playgroud)

演示:

>>> import datetime
>>> d = "2012-12-19"                
>>> datetime.datetime.strptime(d, '%Y-%m-%d').date()
datetime.date(2012, 12, 19)
Run Code Online (Sandbox Code Playgroud)

你没有通过f[0],等等,如果你做了那个,你的方法会有用,或者:

datetime.date(*f)
Run Code Online (Sandbox Code Playgroud)