12

可能重复:
将字符串转换为日期时间

我正在解析一个 XML 文件,该文件为我提供了相应 isoformat 的时间:

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

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

谢谢。

4

3 回答 3

31

使用datetime.strptime方法:

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

提供的链接显示了不同的格式指令。请注意,微秒限制为 range [0,999999],这意味着ValueError您的示例将提高 a (您使用的是 1/10us):您需要截断字符串以删除最后一个字符。

于 2012-10-01T11:51:01.613 回答
5

你可以使用python-dateutilparse()函数,它比 strptime 更灵活。希望这对您有所帮助。

于 2012-10-01T11:51:01.333 回答
4

使用datetime模块

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需要处理。所以我已经从你的输入字符串中删除了最后一位数字。

于 2012-10-01T11:50:41.177 回答