Python:如何将字符串转换为datetime

时间:2012-10-01 11:45:14

标签: python datetime

  

可能重复:
  Converting string into datetime

我正在解析一个XML文件,它给了我相应的isoformat中的时间:

tc1 = 2012-09-28T16:41:12.9976565
tc2 = 2012-09-28T23:57:44.6636597

但是当我从XML文件中检索它时,它被视为一个字符串。 我有两个这样的时间值,我需要在两者之间做差异,以便找到delta。 但由于它是一个字符串,我不能直接做tc2-tc1。但由于它们已经在日期时间的isoformat中,我如何让python将其识别为日期时间?

感谢。

3 个答案:

答案 0 :(得分:25)

使用datetime.strptime方法:

import datetime
datetime.datetime.strptime(your_string, "%Y-%m-%dT%H:%M:%S.%f")

提供的链接提供了不同的格式指令。请注意,微秒限于范围[0,999999],这意味着将使用您的示例(您使用1 / 10us)引发ValueError:您需要截断字符串以删除最终字符

答案 1 :(得分:5)

你可以使用python-dateutil parse() function,它比strptime更灵活。希望这能帮助你。

答案 2 :(得分:4)

使用datetime module

td = datetime.strptime('2012-09-28T16:41:12.997656', '%Y-%m-%dT%H:%M:%S.%f') - 
     datetime.strptime('2012-09-28T23:57:44.663659', '%Y-%m-%dT%H:%M:%S.%f')
print td
# => datetime.timedelta(-1, 60208, 333997)

只有一个小问题:你的微秒是%f要处理的长一位数。所以我删除了输入字符串中的最后一位数字。