python datetime strptime通配符

2024-05-18 15:20:44 发布

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

我想将这样的日期解析为datetime对象:

  • 2008年12月12日
  • 2009年1月1日

以下内容适用于第一次约会:

datetime.strptime("December 12th, 2008", "%B %dth, %Y")

但第二次将失败,因为日期编号('st')的后缀。那么,strtime中是否有未记录的通配符?或者一个更好的方法?


Tags: 对象方法datetime后缀编号约会st通配符
3条回答

尝试使用dateutil.parser模块。

import dateutil.parser
date1 = dateutil.parser.parse("December 12th, 2008")
date2 = dateutil.parser.parse("January 1st, 2009")

其他文档可以在这里找到:http://labix.org/python-dateutil

strtime很棘手,因为它的实现依赖于底层的C库,所以在不同的平台上有些细节是不同的。似乎没有办法匹配你需要的角色。但你可以先清理数据:

# Remove ordinal suffixes from numbers.
date_in = re.sub(r"(st|nd|rd|th),", ",", date_in)
# Parse the pure date.
date = datetime.strptime(date_in, "%B %d, %Y")

你需要古斯塔沃·尼梅耶的python_dateutil——一旦安装好

>>> from dateutil import parser
>>> parser.parse('December 12th, 2008')
datetime.datetime(2008, 12, 12, 0, 0)
>>> parser.parse('January 1st, 2009')
datetime.datetime(2009, 1, 1, 0, 0)
>>> 

相关问题 更多 >

    热门问题