代码之家  ›  专栏  ›  技术社区  ›  Oli

用Python解析这个日期:2010年11月5日

  •  3
  • Oli  · 技术社区  · 15 年前

    对于能够将此日期格式解析为 datetime.date datetime.datetime .date ):

    5th November 2010

    3 回复  |  直到 15 年前
        1
  •  17
  •   unutbu    13 年前

    使用 dateutil :

    In [2]: import dateutil.parser as dparser
    
    In [3]: date = dparser.parse('5th November 2010')
    
    In [4]: date
    Out[4]: datetime.datetime(2010, 11, 5, 0, 0)
    
        2
  •  10
  •   Alex Martelli    15 年前

    strptime

    >>> import re
    >>> import datetime
    >>> ordn = re.compile(r'(?<=\d)(st|nd|rd|th)\b')
    >>> def parse(s):
    ...   cleans = ordn.sub('', s)
    ...   dt = datetime.datetime.strptime(cleans, '%d %B %Y')
    ...   return dt.date()
    ... 
    >>> parse('5th November 2010')
    datetime.date(2010, 11, 5)
    

    你喜欢什么 date datetime .date() 方法 日期时间 对象用于;-)。

    dateutil

        3
  •  5
  •   Community Mohan Dere    8 年前

    如果序数是常数,那么:

    datetime.strptime(s, '%dth %B %Y')
    

    其他:

    date_str = '5th November 2010'
    modified_date_str = date_str[0:1] + date_str[3:]
    datetime.strptime(modified_date_str, '%d %B %Y')
    

    ~unutbu said 使用dateutil:)