Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python(GAE)中将字符串转换为日期时间对象?_Python_Datetime_Time - Fatal编程技术网

在Python(GAE)中将字符串转换为日期时间对象?

在Python(GAE)中将字符串转换为日期时间对象?,python,datetime,time,Python,Datetime,Time,我对Python非常陌生,但我需要将一个项目从PHP迁移到Python(在GAE环境中运行),并且需要将所有数据从一个数据库移动到GAE的数据库。 问题是将数据字符串写入datetime对象。 日期存储为字符串,使用PHP的模式“ldsofy(h:i:sa)”创建 所以每个日期都是这样的: 2005年7月31日星期日(下午2:05:50) 我已经查阅了Python文档,我可以看到,datetime.strtime可以完成这项工作,但是。。。 它没有“th”、“rd”和“st”结尾的参数。可能还有

我对Python非常陌生,但我需要将一个项目从PHP迁移到Python(在GAE环境中运行),并且需要将所有数据从一个数据库移动到GAE的数据库。 问题是将数据字符串写入datetime对象。 日期存储为字符串,使用PHP的模式“ldsofy(h:i:sa)”创建 所以每个日期都是这样的: 2005年7月31日星期日(下午2:05:50)

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

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

提前感谢您。

如果您可以与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
将日期字符串转换为
strtime
可以解析的格式

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)

谢谢但不幸的是,GAE的SDK没有dateutil.parser模块。当我尝试第二个示例时,它会触发comment.date=datetime.datetime.strtime(re.sub(r'\w++(\d+)\w+of(+++)\s++((++)),r'\1\2\3',删除html标签(_date)),“%d%B%Y%I:%M:%s%p”)文件“C:\Python27\lib_strtime.py”,第328行,在_striptime数据字符串[found.end():])ValueError:未转换的数据仍然存在:\ uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuijigari:请发布
repr(删除html标签(\日期))
@momijigari:也应该有一种方法可以。不幸的是,该链接没有显示如何进行,但它确实暗示这是可能的。感谢您的帮助!我刚刚下载了dateutil模块,并将其放在与me app.yaml相同的目录中,而您的第一个代码工作得非常出色!谢谢