【发布时间】:2012-02-12 08:10:02
【问题描述】:
我需要 Python_dateutil 1.5 parse() 使用 Unicode 月份名称。
如果使用fuzzy=True,它会跳过月份名称并产生月份= 1的结果
当我在没有模糊参数的情况下使用它时,我得到下一个异常:
from dateutil.parser import parserinfo, parser, parse
class myparserinfo(parserinfo):
MONTHS = parserinfo.MONTHS[:]
MONTHS[3] = (u"Foo", u"Foo", u"Июнь")
>>> test = unicode('8th of Июнь', 'utf-8')
>>> tester = parse(test, parserinfo=myparserinfo())
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\Python27\lib\site-packages\python_dateutil-1.5-py2.7.egg\dateutil\parser.py", line 695, in parse
return parser(parserinfo).parse(timestr, **kwargs)
File "C:\Python27\lib\site-packages\python_dateutil-1.5-py2.7.egg\dateutil\parser.py", line 303, in parse
raise ValueError, "unknown string format"
ValueError: unknown string format
【问题讨论】:
-
尝试编码为 UTF-8。
test = test.encode("utf-8") -
@S.Lott 谢谢,我已经修正了描述
-
RE:尝试编码为 UTF-8。 test = test.encode("utf-8") 没用
-
我认为您在这个问题中使用“unicode”一词具有误导性。我认为您的意思是“俄罗斯”。我想你是在问如何 python-dateutil 1.5 能够解析用俄语写的日期。添加“国际化”标签将使您的问题更容易被知道的人看到。
-
不是答案,但作为替代方案,您可以考虑使用 PyICU pyicu.osafoundation.org,它使用最新的 CLDR 数据。
标签: python datetime internationalization