Dateutil是一个很好的工具,用于解析字符串格式的日期。例如
from dateutil.parser import parse
parse("Tue, 01 Oct 2013 14:26:00 -0300")
退货
datetime.datetime(2013, 10, 1, 14, 26, tzinfo=tzoffset(None, -10800))
然而,
parse("Ter, 01 Out 2013 14:26:00 -0300") # In portuguese
产生此错误:
ValueError: unknown string format
有人知道如何使dateutil知道语言环境吗?
最佳答案
据我所知,dateutil不支持语言环境(尚未!)。
我可以想到三个替代建议:
dateutil.parser
(作为parserinfo
类的一部分)进行了硬编码。您可以继承parserinfo的子类,并将这些名称替换为葡萄牙语的适当名称。 import locale
locale.setlocale(locale.LC_ALL, "pt_PT")
from dateutil.parser import parse
parse("Ter, 01 Out 2013 14:26:00 -0300")
我已经启动了一个 fork ,它从
calendar
模块(可识别语言环境)获取名称以进行处理:https://github.com/alexwlchan/dateutil目前,它适用于葡萄牙语(或似乎适用),但在向主分支提交补丁之前,我想再想一想。特别是,如果遇到西欧语言未使用的字符,可能会发生怪异现象。我还没有测试过(请参阅https://stackoverflow.com/a/8917539/1558022)
from datetime import datetime, date
import locale
locale.setlocale(locale.LC_ALL, "pt_PT")
datetime.strptime("Ter, 01 Out 2013 14:26:00 -0300",
"%a, %d %b %Y %H:%M:%S %z")
(请注意
%z
token 是not consistently supported in datetime。)关于python - 使用dateutil.parser解析另一种语言的日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19927654/