简短而简单。我有一个巨大的日期时间列表,像这样的字符串:
Jun 1 2005 1:33PM
Aug 28 1999 12:00AM
我将把它们推回到数据库中的正确日期时间字段中,因此我需要将它们变成真正的日期时间对象。
任何帮助(即使只是向正确的方向踢)都将不胜感激。
编辑:这是通过 Django 的 ORM,所以我不能使用 SQL 来进行插入转换。
datetime.strptime
是将字符串解析为日期时间的主要例程。它可以处理各种格式,格式由您提供的格式字符串确定:
from datetime import datetime
datetime_object = datetime.strptime('Jun 1 2005 1:33PM', '%b %d %Y %I:%M%p')
生成的datetime
对象是时区的。
链接:
strftime.org也是strftime的一个非常好的参考
笔记:
strptime
=“字符串解析时间” strftime
=“字符串格式时间” 使用第三方dateutil库:
from dateutil import parser
dt = parser.parse("Aug 28 1999 12:00AM")
它可以处理大多数日期格式,包括您需要解析的格式。它比 strptime 更方便,因为它可以在大多数时间猜测正确的格式。
它对于编写测试非常有用,其中可读性比性能更重要。
你可以安装它:
pip install python-dateutil
查看时间模块中的strptime 。这是strftime 的反面 。
$ python
>>> import time
>>> time.strptime('Jun 1 2005 1:33PM', '%b %d %Y %I:%M%p')
time.struct_time(tm_year=2005, tm_mon=6, tm_mday=1,
tm_hour=13, tm_min=33, tm_sec=0,
tm_wday=2, tm_yday=152, tm_isdst=-1)