我知道有各种类似的帖子。
并且非常了解strptime
和strftime
函数。
我的问题有点不同。
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
或类似的方法可行,但我宁愿使用原生的东西。
由于
答案 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的子类)。