【发布时间】:2014-12-05 07:45:06
【问题描述】:
谁能告诉我如何在 Python 中解析法语日期?抱歉,如果问题是重复的,但我找不到。
这是我尝试使用 dateutil 解析器的方法:
import locale
from dateutil.parser import parse as parse_dt
locale.setlocale(locale.LC_TIME, 'fr_FR.UTF-8') ## first I set locale
## locale.LC_TIME, 'fr_FR.UTF-8')
parse_dt('3 juillet',fuzzy= True) ## don't work give the default month
## Out[29]: datetime.datetime(2014, 10, 3, 0, 0)
parse_dt(u'4 Août ',fuzzy= True) ## same thing using another month
编辑:添加一些上下文:
我在事先不知道我的字符串格式的情况下解析日期。这个想法是在飞行中解析许多日期:
parse_dt(u'Aujourd''hui ',fuzzy= True)
parse_dt(u'Hier',fuzzy= True)
使用另一个库编辑:
使用 parsedatime 库和一些正则表达式来翻译法语单词,我可以得到:
import parsedatetime
import re
cal = parsedatetime.Calendar()
cal.parse(re.sub('juil.*' ,'jul' ,'20 juillet'))
((2015, 7, 20, 10, 25, 47, 4, 283, 1), 1)
也许我应该把它推广到所有法国月份?
【问题讨论】:
-
在法语中,我从来没有读过或听过按“月日”的顺序表达日和月,但总是按“日月”的顺序。它可以与
'3 juillet'或u'3 Août'一起使用吗? -
@agstudy:你试过了吗:
datetime.strptime(date_string, '%d %B')? -
在检查
dateutil源代码后,dateutil似乎不支持依赖于语言环境的日期解析。 -
我认为您在不知道格式的情况下无法正确解析任何内容。最多你会得到命中和失误,我认为这不是你想要的。很可能你必须坐下来浏览数据并获得最“可捕获”的格式,而不要管其余的......
标签: python parsing date localization internationalization