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

2024-04-26 21:34:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我今天在日期分析和格式设置方面有点不愉快。在

对于能够将此日期格式解析为datetime.datedatetime.datetime(我不太挑剔,但我更喜欢.date)的人的要点:

5th November 2010


Tags: datetimedate格式要点november
3条回答

如果序数是常数,则:

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

其他:

^{pr2}$

或类似于~unutbu said使用dateutil:)

使用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)

不幸的是,strptime没有格式字符来表示“跳过一个序数后缀”,所以,我先跳过,再加上一点RE,然后解析得到的“clear”字符串。一、 电子邮箱:

>>> 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)

您对datedatetime的偏好没有问题,这就是datetime对象的.date()方法的目的;-)。在

顺便说一下,如果您需要进行大量的“模糊”日期解析(或其他与日期相关的花哨的东西;-),那么像dateutil这样的第三方扩展非常有用。在

相关问题 更多 >