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

Flutter中转换指定UTC日期格式为yyyy:MM:dd HH:mm的格式模式是什么

Flutter日期格式转换方案

要将「Sun Dec 24 2023 21:00:00 GMT+0000 (Coordinated Universal Time)」转换为「yyyy:MM:dd HH:mm」格式,需分两步完成:先解析原始日期字符串,再格式化为目标样式,具体格式模式和代码实现如下:

1. 原始日期的解析格式模式

原始日期字符串的结构对应的解析模式为:EEE MMM dd yyyy HH:mm:ss 'GMT'Z '('zzzz')'
各部分对应含义:

  • EEE:英文缩写星期名(如示例中的Sun)
  • MMM:英文缩写月份名(如示例中的Dec)
  • dd:两位数字日期(如示例中的24)
  • yyyy:四位数字年份(如示例中的2023)
  • HH:mm:ss:24小时制的时分秒
  • 'GMT':固定字符串,用单引号包裹避免被识别为格式符号
  • Z:时区偏移值(如示例中的+0000)
  • '('zzzz')':括号包裹的完整时区名称(如示例中的Coordinated Universal Time),单引号用于固定括号部分

2. 目标格式模式

目标格式「yyyy:MM:dd HH:mm」直接对应模式:yyyy:MM:dd HH:mm

完整代码示例

首先在pubspec.yaml中添加依赖:

dependencies:
  flutter:
    sdk: flutter
  intl: ^0.18.1 # 建议使用最新版本

然后在代码中实现转换逻辑:

import 'package:intl/intl.dart';

void main() {
  // 原始日期字符串
  String rawDate = "Sun Dec 24 2023 21:00:00 GMT+0000 (Coordinated Universal Time)";
  
  // 初始化解析格式,指定en_US本地化确保英文日期解析正常
  DateFormat parseFormat = DateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT'Z '('zzzz')'", "en_US");
  DateTime dateTime = parseFormat.parse(rawDate);
  
  // 初始化目标格式
  DateFormat targetFormat = DateFormat("yyyy:MM:dd HH:mm");
  String formattedDate = targetFormat.format(dateTime);
  
  print(formattedDate); // 输出结果:2023:12:24 21:00
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:15:53