在Python(GAE)中将字符串转换为datetime对象?

时间:2011-09-04 21:45:41

标签: python datetime time

我是Python的新手,但我需要将项目从PHP迁移到Python(在GAE环境中运行),我需要将所有数据从一个数据库移动到GAE的一个。 挑战在于将数据字符串写入datetime对象。 日期存储为字符串,使用PHP的模式“l dS of F Y(h:i:s A)”创建 所以每个日期都是这样的: 2005年7月31日星期日(02:05:50 PM)

我已经查看了Python文档,我可以看到 datetime.strptime 可以完成这项工作,但是...... 它没有“th”,“rd”和“st”结尾的参数。并且可能还有其他一些问题。

你能告诉我什么? 我可以使用RegExp并删除所有不必要的垃圾,或者有没有办法直接从这样的字符串创建一个datetime对象?

提前谢谢。

1 个答案:

答案 0 :(得分:3)

如果您可以将dateutil与GAE一起使用,那么

In [70]: import dateutil.parser as parser
In [71]: parser.parse('Sunday 31st of July 2005 ( 02:05:50 PM )',fuzzy=True)
Out[71]: datetime.datetime(2005, 7, 31, 14, 5, 50)

否则,您必须依靠re将日期字符串操作为strptime可以解析的格式。

In [89]: datetime.datetime.strptime(re.sub(r'\w+ (\d+)\w+ of(.+)\s+\( (.+) \)',r'\1 \2 \3','Sunday 31st of July 2005 ( 02:05:50 PM )'),'%d %B %Y %I:%M:%S %p')
Out[89]: datetime.datetime(2005, 7, 31, 14, 5, 50)