Python中字符串转日期:实现葡萄牙语月份缩写格式显示
如何将日期字符串转换为带葡萄牙语月份缩写的格式
我来帮你搞定这个日期格式转换的需求!在Python里,我们可以通过两种常见方式实现:利用本地化设置(locale),或者手动映射月份缩写,下面分别给你详细说明:
方法一:使用locale模块实现本地化格式转换
这种方法会直接借助系统的本地化配置生成葡萄牙语的月份缩写,步骤如下:
- 导入所需模块:
import datetime import locale
- 设置本地化的时间格式为葡萄牙语(欧洲葡萄牙)
注意:不同操作系统的locale名称略有差异:- Linux/macOS:
'pt_PT.UTF-8' - Windows:
'Portuguese_Portugal.1252'
- Linux/macOS:
# 根据你的系统选择对应的locale名称 try: locale.setlocale(locale.LC_TIME, 'pt_PT.UTF-8') except locale.Error: # 如果系统不支持欧洲葡萄牙语,可尝试巴西葡萄牙语(缩写和需求一致) locale.setlocale(locale.LC_TIME, 'pt_BR.UTF-8')
- 解析输入的日期字符串,并格式化为目标格式
# 处理第一个日期 date_str1 = "23/02/2018" date_obj1 = datetime.datetime.strptime(date_str1, "%d/%m/%Y") formatted_date1 = date_obj1.strftime("%d-%b-%Y").lower() # lower()确保缩写为小写 print(formatted_date1) # 输出:23-fev-2018 # 处理第二个日期 date_str2 = "23/10/2017" date_obj2 = datetime.datetime.strptime(date_str2, "%d/%m/%Y") formatted_date2 = date_obj2.strftime("%d-%b-%Y").lower() print(formatted_date2) # 输出:23-out-2017
方法二:手动映射月份缩写(避免locale依赖)
如果你的系统无法设置葡萄牙语locale,或者想更灵活控制月份缩写,可以手动创建映射字典:
import datetime # 定义葡萄牙语月份缩写映射(数字字符串到缩写) pt_month_abbr = { '01': 'jan', '02': 'fev', '03': 'mar', '04': 'abr', '05': 'mai', '06': 'jun', '07': 'jul', '08': 'ago', '09': 'set', '10': 'out', '11': 'nov', '12': 'dez' } def format_pt_date(date_str): # 解析日期字符串为datetime对象 date_obj = datetime.datetime.strptime(date_str, "%d/%m/%Y") # 获取日、月份数字字符串、年 day = str(date_obj.day).zfill(2) month_num = str(date_obj.month).zfill(2) year = str(date_obj.year) # 拼接成目标格式 return f"{day}-{pt_month_abbr[month_num]}-{year}" # 测试 print(format_pt_date("23/02/2018")) # 23-fev-2018 print(format_pt_date("23/10/2017")) # 23-out-2017
两种方法都能满足你的需求,第一种更简洁,第二种更独立,不用担心系统locale的限制~
内容的提问来源于stack exchange,提问作者Ricardo Marques
相关产品推荐
相关产品推荐

