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

Flutter(Dart)中如何将yyyy-MM-dd'T'HH:mm:ss格式字符串转为普通日期

解决思路:将ISO格式日期字符串转换为指定展示格式

核心逻辑分两步:先把yyyy-MM-dd'T'HH:mm:ss格式的字符串解析为日期类型对象,再将该对象格式化为dd/MM/yyyy格式的字符串。以下是几种主流编程语言的实现示例:

Java 实现(Java 8+ 推荐使用新日期API)

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class DateConverter {
    public static void main(String[] args) {
        String isoDateStr = "2024-05-20T14:30:00";
        
        // 解析ISO字符串为LocalDateTime对象
        DateTimeFormatter isoFormatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
        LocalDateTime dateTime = LocalDateTime.parse(isoDateStr, isoFormatter);
        
        // 格式化为dd/MM/yyyy
        DateTimeFormatter targetFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
        String formattedDate = dateTime.format(targetFormatter);
        
        System.out.println(formattedDate); // 输出:20/05/2024
    }
}

Python 实现

from datetime import datetime

iso_date_str = "2024-05-20T14:30:00"

# 解析ISO字符串为datetime对象
date_obj = datetime.fromisoformat(iso_date_str)

# 格式化为dd/MM/yyyy
formatted_date = date_obj.strftime("%d/%m/%Y")

print(formatted_date) # 输出:20/05/2024

JavaScript 实现

const isoDateStr = "2024-05-20T14:30:00";

// 解析ISO字符串为Date对象
const dateObj = new Date(isoDateStr);

// 手动格式化为dd/MM/yyyy
const day = String(dateObj.getDate()).padStart(2, '0');
const month = String(dateObj.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需加1
const year = dateObj.getFullYear();

const formattedDate = `${day}/${month}/${year}`;
console.log(formattedDate); // 输出:20/05/2024

关键注意点

  • 解析时必须匹配原字符串的格式(比如yyyy-MM-dd'T'HH:mm:ss对应ISO标准格式,多数语言有内置的解析器支持);
  • 格式化时要注意日期占位符的规则(比如Python中%d代表两位日期,%m代表两位月份;Java中dd、MM同理);
  • 部分语言的日期API存在时区差异,若涉及跨时区场景,需额外指定时区参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 17:48:30