0
我有以下DateTime和字符串编码相关的问题:DateTime的一台机器,但死机的解析工作在另一个
我想分析的日期出字符串“Freitag的,马兹03. 2017年”的。要做到这一点,我用下面的代码行:
self.date = datetime.datetime.strptime(formattedDate.strip(), '%A, %d. %B %Y').date()
File "/opt/rh/python27/root/usr/lib64/python2.7/_strptime.py", line 325, in _strptime
(data_string, format))
ValueError: time data 'Freitag, 03. M\xc3\xa4rz 2017' does not match format '%A, %d. %B %Y'
:
locale.setlocale(locale.LC_ALL, "de_DE")
if re.findall(r"[\w]+, [0-9][0-9]\. [\w]+ [0-9]+", date):
self.date = datetime.datetime.strptime(date.strip().encode("utf-8"), '%A, %d. %B %Y').date()
else:
formattedDate = ', 0'.join(date.split(", ")).encode("utf-8")
self.date = datetime.datetime.strptime(formattedDate.strip(), '%A, %d. %B %Y').date()
这种运作良好,我的机器上(MacOS的,系统语言是德语),但在OpenShift实例崩溃此代码上运行
几乎可以确定您尚未在OpenShift服务器上安装de_DE语言环境。 – felipsmartins
@felipsmartins嗯,这不会打破解析任何其他德国日期?其他几个月工作,这表明这确实是一个编码问题 – rodalfus
@rodalfus如果你的服务器不支持UTF-8编码,RIP – Jerfov2