2011-09-04 73 views
2

我对Python很陌生,但我需要将项目从PHP迁移到Python(在GAE环境中运行),我需要将所有数据从一个数据库移动到GAE。挑战在于将数据字符串写入日期时间对象。 日期存储为字符串,其中使用PHP的模式“风云(h:i:s A)”来创建“ 因此,每个日期如下所示: 2005年7月31日星期日(02:05:50 PM)在Python(GAE)中将字符串转换为datetime对象?

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

你能告诉我什么? 我可以使用RegExp并删除所有不需要的垃圾,或者有什么方法可以直接从这样的字符串创建日期时间对象?

预先感谢您。

回答

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) 
+0

谢谢!但不幸的是,GAE的SDK没有dateutil.parser模块。 当我尝试你的第二个例子时,它会触发 comment.date = datetime.datetime.strptime(re.sub(r'\ w +(\ d +)\ w + of(。+)\ s + \((。+)\) ',r'\ 1 \ 2 \ 3',remove_html_tags(_date)),'%d%B%Y%I:%M:%S%p') 文件“C:\ Python27 \ lib \ _strptime.py “328行,在_strptime data_string [found.end():]) ValueError:未转换的数据仍然是:___________ – momijigari

+0

@momijigari:请发布'repr(remove_html_tags(_date))'。 – unutbu

+0

@momijigari:也应该有一种方法来[与GAE安装dateutil](http://stackoverflow.com/questions/631035/python-tzinfo-and-daylight-time)。不幸的是,这个链接并没有显示如何,但它确实意味着它是可能的。 – unutbu