我有一个巨大的日期时间列表,像这样的字符串。
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
= "string parse time"strftime
= "string format time"使用第三方的dateutil库。
from dateutil import parser
parser.parse("Aug 28 1999 12:00AM") # datetime.datetime(1999, 8, 28, 0, 0)
它可以处理大多数日期格式,包括你需要解析的格式。它比strptime
更方便,因为它能在大多数时候猜出正确的格式。
它在编写测试时非常有用,因为可读性比性能更重要。
你可以用以下方法安装它。
pip install python-dateutil
看看 time 模块中的 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)