解析时间字符串,Python
我很难用解析时间字符串,Python,python,locale,strptime,Python,Locale,Strptime,我很难用datetime.strtime解析日期/时间字符串: date = "30. Dez 2016 19:34" format = "%d. %b %Y %H:%M" dt = datetime.strptime(date, format) dt 引发值错误: ValueError: time data '30. Dez 2016 19:34' does not match format '%d. %b %Y %H:%M' 字符串使用德国惯例,即“Dez”表示十二月。我用locale
datetime.strtime
解析日期/时间字符串:
date = "30. Dez 2016 19:34"
format = "%d. %b %Y %H:%M"
dt = datetime.strptime(date, format)
dt
引发值错误:
ValueError: time data '30. Dez 2016 19:34' does not match format '%d. %b %Y %H:%M'
字符串使用德国惯例,即“Dez”表示十二月。我用locale.getlocale()
检查了我的区域设置,看起来还可以:('de_de','UTF-8')
。不过,用英语“Dec”替换“Dez”效果不错。我还检查了,这向我建议它应该开箱即用:
由于格式取决于当前区域设置,因此在对输出值进行假设时应小心
编辑
locale.setlocale(locale.LC_TIME, 'de_DE')
是的。这仍然让我有点不满意,因为我的工作地点一开始似乎很合适。如果有人能提供更多信息…如果在运行代码之前手动设置语言环境会发生什么?如果我使用
locale.setlocale(locale.LC_ALL,'de_de')
然后从上面运行代码,我会看到正确的值。现在这很简单。谢谢。它起作用了。我看到有人这样做,但我不敢尝试,因为我不知何故不想弄乱现场。它安全吗?如果这确实是你的语言环境,我看不出有任何理由不安全。我会尝试将它限制在日期/时间方面:locale.setlocale(locale.LC_time,'de_de')
以防万一。是的。所以我勇敢地向前走。谢谢。