在python3中解析俄语日期字符串时出错

2024-09-26 17:59:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试将python 3中的日期字符串转换为date对象,如下所示:

from datetime import datetime
import locale

date_string = "Добавлено: суббота, 26 декабря 2015 г. в 11:01:59"
locale.setlocale(locale.LC_TIME, "rus")
ru_date_object = datetime.strptime(date_string , 'Добавлено: %A, %d %B %Y г. в %H:%M:%S')
print(ru_date_object)

执行上述代码时出现以下错误:

Traceback (most recent call last): File "F:\Users***\Desktop\DateParser\20 nov.py", line 54, in ruDate = datetime.strptime(dateStr6, '\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e: %A, %d %B %Y \u0433. \u0432 %H:%M:%S') File "F:\Users***\AppData\Local\Programs\Python\Python35-32\lib_strptime.py", line 510, in _strptime_datetime tt, fraction = _strptime(data_string, format) File "F:\Users***\AppData\Local\Programs\Python\Python35-32\lib_strptime.py", line 343, in _strptime (data_string, format)) ValueError: time data '\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e: \u0441\u0443\u0431\u0431\u043e\u0442\u0430, 26 \u0434\u0435\u043a\u0430\u0431\u0440\u044f 2015 \u0433. \u0432 11:01:59' does not match format '\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e: %A, %d %B %Y \u0433. \u0432 %H:%M:%S'


Tags: inpydatetimedatestringlineuserslocale
1条回答
网友
1楼 · 发布于 2024-09-26 17:59:42

问题出在“абряяяяяяяяяяя。要将此字符串解析为日期,应将“Декабрь”替换为“Декбрь”。你可以这样做:

from datetime import datetime
import locale

date_string = "Добавлено: суббота, 26 декабря 2015 г. в 11:01:59"
locale.setlocale(locale.LC_TIME, "rus")
d = {'января': 'январь', 'декабря': 'декабрь'}
for k, v in d.items():
    date_string = date_string.replace(k, v)
ru_date_object = datetime.strptime(date_string , 'Добавлено: %A, %d %B %Y г. в %H:%M:%S')
print(ru_date_object)

相关问题 更多 >

    热门问题