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