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

Go语言解析含句点的非标准日期“24-Sep.-20”为“24-09-2020”的方法

解决方案

以下是不同常用编程语言的实现方式,无需额外预处理删除月份后的句点,直接匹配对应格式即可完成解析转换:

Python 实现

使用标准库datetime即可完成解析,格式串中直接匹配带点的月份缩写:

from datetime import datetime
import locale

# 非英文环境需临时切换为英文时区,确保月份缩写匹配正常
locale.setlocale(locale.LC_TIME, 'en_US.UTF-8')

origin_str = "24-Sep.-20"
# 输入格式串对应规则:日-月份缩写. -两位年份
parsed_date = datetime.strptime(origin_str, "%d-%b.-%y")
# 输出为目标格式
result = parsed_date.strftime("%d-%m-%Y")
print(result) # 输出结果:24-09-2020

JavaScript 实现

原生JS可以通过月份映射表快速实现,不需要引入第三方库:

const originStr = "24-Sep.-20";
// 自定义带点的月份缩写映射
const monthMap = {
  'Jan.':'01','Feb.':'02','Mar.':'03','Apr.':'04','May.':'05','Jun.':'06',
  'Jul.':'07','Aug.':'08','Sep.':'09','Oct.':'10','Nov.':'11','Dec.':'12'
};
const [day, monthAbbr, shortYear] = originStr.split('-');
// 两位年份默认补20前缀,存在19xx场景可自行调整补全规则
const fullYear = `20${shortYear}`;
const result = `${day}-${monthMap[monthAbbr]}-${fullYear}`;
console.log(result); // 输出结果:24-09-2020

Java 实现

使用DateTimeFormatter指定对应格式和英文时区即可:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class DateConvert {
    public static void main(String[] args) {
        String originStr = "24-Sep.-20";
        DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("d-MMM.-yy", Locale.ENGLISH);
        LocalDate parsedDate = LocalDate.parse(originStr, inputFormatter);
        DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
        String result = parsedDate.format(outputFormatter);
        System.out.println(result); // 输出结果:24-09-2020
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:57:00