首页 > 解决方案 > Dart:解析日期时区给出 UnimplementedError

问题描述

我需要在我的Flutter应用程序中解析以下格式的日期(来自 JSON):

2019-05-17T15:03:22.472+0000

根据文档,我必须使用Z来获取时区(RFC 822 格式的最后 5 个字符),所以我使用以下内容:

new DateFormat("y-M-d'T'H:m:s.SZ").parseStrict(json['startDate']);

但它失败并出现错误:

FormatException:2019-05-17T15:03:22.472+0000 中日期解析后剩余的字符

这是另一个测试:

/// THIS WORKS
try {
    print(new DateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS").format(DateTime.now()));
} catch (e) {
    print(e.toString());
}

/// THIS RETURNS `UnimplementedError` (as soon as I use a 'Z' or 'z') somewhere
try {
    print(new DateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").format(DateTime.now()));
} catch (e) {
    print(e.toString());
}

Z实施了吗?

标签: datedartfluttertimezonedate-formatting

解决方案


可悲的是zv模式没有实现。

在 Dart DateTime 有时区信息之前,这些不会实施

有关此问题的更多信息https://github.com/dart-lang/intl/issues/19


推荐阅读