在python中将String转换为datetime对象

时间:2011-09-04 13:26:20

标签: python datetime

我有一个像这样的字符串字段..

2011-09-04 23:44:30.801000

现在我需要将它转换为python中的datetime对象,以便我可以计算两个日期时间对象之间的差异。

4 个答案:

答案 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 3easy_installpip默认安装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)