我有一个像这样的字符串字段..
2011-09-04 23:44:30.801000
现在我需要将它转换为python中的datetime对象,以便我可以计算两个日期时间对象之间的差异。
答案 0 :(得分:7)
您应该使用datetime.datetime.strptime()
,它会将字符串和日期格式转换为datetime.datetime
对象。
格式字段(例如,%Y
表示四位数年份)指定为in the Python documentation。
>>> import datetime
>>> s = '2011-09-04 23:44:30.801000'
>>> format = '%Y-%m-%d %H:%M:%S.%f'
>>> date=datetime.datetime.strptime(s, format)
>>> date
datetime.datetime(2011, 9, 4, 23, 44, 30, 801000)
答案 1 :(得分:4)
datetime.datetime.strptime
的替代方案是python-dateutil libray。如果没有明确的格式化步骤,dateutil
将允许您执行相同的操作:
>>> from dateutil import parser
>>> date_obj = parser.parse('2011-09-04 23:44:30.801000')
>>> date
datetime.datetime(2011, 9, 4, 23, 44, 30, 801000)
它不是标准的库模块,但它非常便于解析日期和时间字符串,特别是如果您无法控制它们的格式。
如果您安装此库,则需要注意:版本1.5适用于Python 2
,版本2.0适用于Python 3
。 easy_install
和pip
默认安装2.0版本,因此如果您使用的是python-dateutil==1.5
,则必须明确指出Python 2
。
答案 2 :(得分:0)
答案 3 :(得分:0)
# date string to datetime object
date_str = "2008-11-10 17:53:59"
dt_obj = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print repr(dt_obj)