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
相关产品推荐
相关产品推荐

