Flutter中字符串转DateTime抛出FormatException问题求助
问题解决:DateFormat解析日期抛出FormatException
错误原因
你写的日期格式串顺序和待转换的日期结构不匹配:
- 待转换日期:
Mon, 05 Sep 2022 10:00:00 GMT,结构是「星期缩写, 日 月缩写 年 时分秒 GMT」 - 你用的格式串:
dd, EEE MMM yyyy HH:mm:ss 'GMT',把「日(dd)」放在了最前面,解析时会尝试从日期开头的Mon读取日数值,直接触发格式异常。
修正后的代码
调整格式串顺序为EEE, dd MMM yyyy HH:mm:ss 'GMT',同时修正字符串转义问题:
// 确保用英文环境解析英文星期缩写 safePrint(Intl.withLocale( 'en', () => DateFormat("EEE, dd MMM yyyy HH:mm:ss 'GMT'") .parse(batch_timing[j]))); // 用双引号包裹格式串避免单引号语法冲突 print(DateFormat("EEE, dd MMM yyyy HH:mm:ss 'GMT'") .parse(batch_timing[j]));
额外注意
因为日期中的星期是英文缩写,必须通过Intl.withLocale('en')指定英文环境解析,否则如果系统默认locale不是英文,依然会解析失败。
内容的提问来源于stack exchange,提问作者Krishna prasad
相关产品推荐
相关产品推荐

