You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中将日期转换为西班牙语格式并显示

解决Python日期转西班牙语格式的问题

你的现有代码存在解析错误:datetime.strptime(s, "%B")用错了格式符,%B代表月份全称,无法解析2004/03/30这种年/月/日格式,应该用%Y/%m/%d来匹配。以下是完整解决方案:

一、转换为MM/DD/YYYY格式

直接通过strftime指定格式即可实现:

from datetime import datetime, timedelta

s = '2004/03/30'
# 正确解析输入的日期字符串
date = datetime.strptime(s, "%Y/%m/%d")
# 转换为MM/DD/YYYY格式
mm_dd_yyyy_format = date.strftime("%m/%d/%Y")
print(mm_dd_yyyy_format)  # 输出:03/30/2004

二、生成西班牙语日期字符串

要输出西班牙语格式的日期,可通过两种方式实现:

方法1:使用标准库locale

借助系统本地化设置实现西班牙语日期转换,注意不同系统的locale名称有差异:

from datetime import datetime
import locale

s = '2004/03/30'
date = datetime.strptime(s, "%Y/%m/%d")

# 适配不同系统的西班牙语locale
try:
    # Linux/macOS环境
    locale.setlocale(locale.LC_TIME, 'es_ES.UTF-8')
except locale.Error:
    try:
        # Windows环境
        locale.setlocale(locale.LC_TIME, 'Spanish_Spain.1252')
    except locale.Error:
        print("系统未安装西班牙语本地化包,请先安装后再尝试")
        exit()

# 生成西班牙语格式的日期字符串
spanish_date = date.strftime("%A, %d De %B De %Y")
# 统一月份首字母大写(部分locale默认小写)
spanish_date = spanish_date.replace(date.strftime("%B"), date.strftime("%B").capitalize())
print(spanish_date)  # 输出:Martes, 30 De Marzo De 2004

方法2:使用babel库(跨平台更稳定)

如果标准库locale存在兼容性问题,可使用第三方库babel实现跨平台的日期本地化:
首先安装依赖:

pip install babel

然后编写代码:

from datetime import datetime
from babel.dates import format_date

s = '2004/03/30'
date = datetime.strptime(s, "%Y/%m/%d")

# 生成西班牙语长格式日期
spanish_date = format_date(date, format="EEEE, dd 'De' MMMM 'De' yyyy", locale='es_ES')
print(spanish_date)  # 输出:martes, 30 de marzo de 2004

# 同时生成MM/DD/YYYY格式
mm_dd_yyyy_format = date.strftime("%m/%d/%Y")
print(mm_dd_yyyy_format)  # 输出:03/30/2004

内容的提问来源于stack exchange,提问作者samantha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 15:13:09