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

如何在Python中自定义法语缩写月份的日期格式?

处理法语缩写月份的日期转换问题

方法一:自定义月份映射字典

如果你的字典映射没成功,大概率是缩写匹配有误(比如带点/不带点的差异),以下是正确的实现方式:

# 定义法语月份缩写到数字的映射,确保和输入的缩写完全一致
french_month_map = {
    'janv.': '01',
    'févr.': '02',
    'mars': '03',
    'avr.': '04',
    'mai': '05',
    'juin': '06',
    'juil.': '07',
    'août': '08',
    'sept.': '09',
    'oct.': '10',
    'nov.': '11',
    'déc.': '12'
}

def convert_french_date(date_str):
    # 按'-'分割日期的日、月缩写、年
    day, month_abbr, year = date_str.split('-')
    # 从字典获取对应月份数字
    month = french_month_map[month_abbr]
    # 拼接成目标格式
    return f"{day}/{month}/{year}"

# 测试示例
print(convert_french_date('13-janv.-2023'))  # 输出: 13/01/2023

方法二:利用本地化(locale)模块

如果不想手动维护字典,可以通过设置法语本地化环境,直接用datetime模块解析:

import locale
from datetime import datetime

# 注意:不同系统的locale名称不同
# Linux/macOS 使用 'fr_FR.UTF-8',Windows 使用 'fra'
try:
    locale.setlocale(locale.LC_TIME, 'fr_FR.UTF-8')
except locale.Error:
    locale.setlocale(locale.LC_TIME, 'fra')

# 解析法语格式日期
date_obj = datetime.strptime('13-janv.-2023', '%d-%b-%Y')
# 格式化为目标格式
formatted_date = date_obj.strftime('%d/%m/%Y')
print(formatted_date)  # 输出: 13/01/2023

常见问题排查

  • 自定义字典时,确保键和输入的月份缩写完全一致(包括末尾的点、特殊字符如é、û)
  • 使用locale时,如果报错"locale.Error: unsupported locale setting",请替换为对应系统的法语locale名称

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 17:31:07