将字符串转换为日期时间

简短而简单。 我有一个像这样的日期时间的巨大列表作为字符串:

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对象是无时区的。

链接:

  • strptime Python文档:Python 2,Python 3

  • strptime / strftime格式字符串的Python文档:Python 2,Python 3

  • strftime.org也是strftime的一个很好的参考

  • 笔记:

  • strptime =“字符串解析时间”
  • strftime =“字符串格式时间”
  • 今天大声地发出它,你将不必在6个月内再次搜索它。

  • 使用第三方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)
    
    链接地址: http://www.djcxy.com/p/4265.html

    上一篇: Converting string into datetime

    下一篇: What is the best collation to use for MySQL with PHP?