Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解析时间字符串,Python_Python_Locale_Strptime - Fatal编程技术网

解析时间字符串,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')
以防万一。是的。所以我勇敢地向前走。谢谢。