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

Python: How to convert string into datetime

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Converting string into datetime

我正在分析一个XML文件,该文件为我提供了相应的异构格式的时间:

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

但是,当我从XML文件中检索到它时,它被当作一个字符串来处理。我有两个这样的时间值,我需要在这两者之间做一个比较,以便找到delta。但是因为它是一个字符串,所以我不能直接执行TC2-TC1。但是,由于它们已经在datetime的isoformat中,如何让python将其识别为datetime?

谢谢。


使用datetime.strptime方法:

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

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


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


使用datetime模块。

1
2
3
4
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来处理。所以我已经从您的输入字符串中删除了最后一个数字。