Python 3.x 如何从";中提取YYYYMMDD日期;8月6日星期二20:13:58 CEST 2013“;用Python?

Python 3.x 如何从";中提取YYYYMMDD日期;8月6日星期二20:13:58 CEST 2013“;用Python?,python-3.x,sqlite,locale,Python 3.x,Sqlite,Locale,我有一个SQLite3数据库,其中日期和时间存储为字符串,如“Tue Aug 06 20:13:58 CEST 2013”,我需要将一些数据提取到CSV文件中 我知道如何打开数据库、连接和光标(读取),以及如何打开输出CSV文件进行写入(使用CSV模块) datetime字符串应转换为“yyyyymmdd”字符串——即在上述情况下为“20130806” 我的想法是使用datetime.datetime.strtime(“Tue Aug 06 20:13:58 CEST 2013” ,frm)获取

我有一个SQLite3数据库,其中日期和时间存储为字符串,如
“Tue Aug 06 20:13:58 CEST 2013”
,我需要将一些数据提取到CSV文件中

我知道如何打开数据库、连接和光标(读取),以及如何打开输出CSV文件进行写入(使用
CSV
模块)

datetime字符串应转换为
“yyyyymmdd”
字符串——即在上述情况下为
“20130806”

我的想法是使用
datetime.datetime.strtime(“Tue Aug 06 20:13:58 CEST 2013”
,frm)
获取
datetime
对象,该对象稍后将用于生成格式化值。但是,我得到以下错误:

Traceback (most recent call last):
  File "a.py", line 18, in <module>
    dt = datetime.datetime.strptime(s, frm)
  File "C:\Python33\lib\_strptime.py", line 500, in _strptime_datetime
    tt, fraction = _strptime(data_string, format)
  File "C:\Python33\lib\_strptime.py", line 337, in _strptime
    (data_string, format))
ValueError: time data 'Tue Aug 06 20:13:51 CEST 2013' does not match format
'%a %b %m %H:%M:%S %Z %Y'
但是,我无法将区域设置设置为
'en'
en_us
,或类似设置:

>>> locale.setlocale(locale.LC_ALL, 'en')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python33\lib\locale.py", line 541, in setlocale
    return _setlocale(category, locale)
locale.Error: unsupported locale setting
>locale.setlocale(locale.LC_ALL,'en')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
setlocale中第541行的文件“C:\Python33\lib\locale.py”
return\u setlocale(类别,区域设置)
区域设置。错误:不支持的区域设置

我需要你的眼睛和经验

好的,一个简单的方法是简单地拆分
”上的字符串,提取月份、日期、年份,将月份名称映射到一个数字并连接结果…@l4mpi:+1我可以做到,我可能也会做到。不管怎样,我还是想解决上面的问题。似乎回答了
locale
部分-没有具有此名称的locale。由于区域设置决定了天数/月份使用的名称,我认为这也解释了
strtime
错误。暗示Windows使用非标准的区域设置名称;因此,您需要为英语区域设置找到正确的名称。哦,您可能不应该设置
LC\u ALL
,而应该设置
LC\u TIME
,这正是
strtime
所使用的。@l4mpi:嗯,Windows上的区域设置似乎很混乱。实际上,
datetime
方法是否正确是个问题。我在数据库中发现了其他几种我应该处理的日期格式。由于我实际上想修复在其他地方生成的格式化字符串,因此我不能确定是否总能确定正确的区域设置。请复制您对“幼稚方法”的评论作为答案,以便我能够接受。@l4mpi:请复制您对“幼稚方法”的评论作为答案,以便我能够通过接受它来结束问题。;)
>>> locale.setlocale(locale.LC_ALL, 'en')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python33\lib\locale.py", line 541, in setlocale
    return _setlocale(category, locale)
locale.Error: unsupported locale setting