这可能是一个重复的问题,但因为我已经阅读了所有 关于它的评论,我没有解决我的问题,我不得不再问一次。
我正在使用一个数据框,其中有一个外观如下的列:
print final['fecha_dato'][2]
2017 年 31 日能源
我这样做是为了让它更容易理解:
d = final['fecha_dato'][2]
d = d.replace(' de ','-')
d = d.replace(' del ','-')
我得到这个输出: '31-Enero-2017'
我想将其转换为 31-01-2017 格式,我尝试这样做是为了使 西类牙语可理解:
locale.setlocale(locale.LC_ALL, 'en_US')
但它说:不支持的语言环境设置。
一旦我完成了这个,我想我将不得不做这样的事情:
datetime.strptime('6-Mar-2016', '%d-%b-%Y').strftime('%Y-%m-%d')
让我们看看是什么问题。如果你能给我一种使用替换的方法 只用一句话,那也很棒。 提前致谢!!
请您参考如下方法:
您可能在 Windows 上,区域设置代码不同。首先,您解析语言环境,以便您可以使用适当的代码正确读取日期字符串:
import locale
locale.setlocale(locale.LC_ALL, 'esp_esp')
然后,如您所料,您使用 strptime 解析字符串以获取日期对象,然后使用 strftime 将其转换回您想要的格式的字符串:
from datetime import datetime as dt
date = dt.strptime('31 de Enero del 2017', '%d de %B del %Y')
date_str = date.strftime('%Y-%m-%d')
