我正在尝试将日期字符串转换为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)


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


  追溯(最近一次通话):
    在第54行的“ F:\ Users *** \ Desktop \ DateParser \ 20 nov.py”文件中
      ruDate = datetime.strptime(dateStr6,'\ u0414 \ u043e \ u0431 \ u0430 \ u0432 \ u043b \ u0435 \ u043d \ u043e:%A,%d%B%Y \ u0433。\ u0432%H:%M:%S ')
    文件“ F:\ Users *** \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib_strptime.py”,行510,在_strptime_datetime中
      tt,分数= _strptime(数据字符串,格式)
    _strptime中的文件“ F:\ Users *** \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib_strptime.py”,第343行
      (data_string,格式)
  ValueError:时间数据'\ u0414 \ u043e \ u0431 \ u0430 \ u0432 \ u043b \ u0435 \ u043d \ u043d \ u043e:\ u0441 \ u0443 \ u0431 \ u0431 \ u0431 \ u043e \ u0442 \ u0430,26 \ u0434 \ u0435 \ u043a \ u0430 \ u0431 \ u0440 \ u044f 2015 \ u0433。 \ u0432 11:01:59'与格式'\ u0414 \ u043e \ u0431 \ u0430 \ u0432 \ u043b \ u0435 \ u043d \ u043e不匹配:%A,%d%B%Y \ u0433。 \ u0432%H:%M:%S'

最佳答案

问题在于单词“декабря”不是主格。要将字符串解析为日期,您应该将“декабря”替换为“декабрь”。您可以这样操作:

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)

关于python - 在python 3中获取俄语语言的错误解析日期字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40762888/

10-12 15:17