python隐式将字符串转换为datetime对象

时间:2011-12-11 18:49:08

标签: python string datetime date casting

我知道有各种类似的帖子。 并且非常了解strptimestrftime函数。

我的问题有点不同。

python中最简单的方法是将字符串隐式地转换为日期/日期对象。

或者显式地,是一个接受表示日期或日期对象的字符串的函数。

与SQL date_object = 'string_of_date'

类似

我想那个

cast_date=lambda x:x if type(x)=='datetime' else strptime(x,'%%%')#dosen't really work
cast_date=lambda x:strptime(str(x),'%%%') #edit

或类似的方法可行,但我宁愿使用原生的东西。

由于

2 个答案:

答案 0 :(得分:4)

您可能需要查看dateutil模块。它有一个很棒的日期时间解析器。

>>> from dateutil.parser import parse
>>> print parse("1:00PM")
2011-12-11 13:00:00
>>> print parse("1/1/2008")
2008-01-01 00:00:00
>>> print type(parse("1/1/2008"))
<type 'datetime.datetime'>

将它与类似的类型检查结合在一起:

my_datetime = parse(item) if isinstance(item, str) or isinstance(item, unicode) else item

答案 1 :(得分:0)

Python中没有本机日期时间转换。你的小助手功能看起来像一个合理的方法。请考虑使用 isinstance 而不是精确的类型检查(以允许datetime的子类)。