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

Flutter/Dart如何将字符串类型的日期转换为其他指定格式

日期格式转换实现方案

你的输入日期为DD/MM/YYYY格式字符串,目标输出为DD 英文月份缩写 YYYY格式,核心实现逻辑为「解析输入日期 -> 按目标规则格式化」,以下是主流编程语言的实现示例:

Python 实现

使用标准库datetime即可完成转换,无需额外依赖:

from datetime import datetime

def convert_date(date_str: str) -> str:
    # 解析输入的DD/MM/YYYY格式字符串
    date_obj = datetime.strptime(date_str, "%d/%m/%Y")
    # 按目标格式输出,%b对应英文月份缩写
    return date_obj.strftime("%d %b %Y")

# 测试用例
print(convert_date("25/04/2020"))  # 输出:25 Apr 2020
print(convert_date("10/02/2020"))  # 输出:10 Feb 2020
print(convert_date("27/11/2021"))  # 输出:27 Nov 2021

JavaScript 实现

方案1:手动映射月份(性能更优)

function convertDate(dateStr) {
    const [day, month, year] = dateStr.split('/');
    const monthAbbr = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
    return `${day} ${monthAbbr[+month - 1]} ${year}`;
}

方案2:使用内置Date对象(适配多语言更方便)

function convertDate(dateStr) {
    const [day, month, year] = dateStr.split('/');
    const date = new Date(year, +month - 1, day);
    return date.toLocaleDateString('en-US', {
        day: '2-digit',
        month: 'short',
        year: 'numeric'
    });
}

Java 实现

使用JDK8+自带的java.time时间库实现:

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

public class DateConverter {
    private static final DateTimeFormatter INPUT_FORMATTER = DateTimeFormatter.ofPattern("dd/MM/yyyy");
    private static final DateTimeFormatter OUTPUT_FORMATTER = DateTimeFormatter.ofPattern("dd MMM yyyy", Locale.ENGLISH);

    public static String convertDate(String dateStr) {
        LocalDate date = LocalDate.parse(dateStr, INPUT_FORMATTER);
        return date.format(OUTPUT_FORMATTER);
    }

    public static void main(String[] args) {
        System.out.println(convertDate("25/04/2020")); // 25 Apr 2020
        System.out.println(convertDate("10/02/2020")); // 10 Feb 2020
        System.out.println(convertDate("27/11/2021")); // 27 Nov 2021
    }
}

注意事项

  • 部分语言的日期对象月份从0开始计数,解析时注意做减1处理,避免月份偏移错误
  • 若需要非英文的月份缩写,仅需修改对应格式化方法的语言地区参数即可
  • 大批量转换场景下建议提前初始化格式化对象,避免重复创建带来的性能损耗

内容的提问来源于stack exchange,提问作者MURALI KRISHNAN MT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:45:00