Yan*_*n39 4 timezone date date-formatting dart flutter
我需要在我的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']);
Run Code Online (Sandbox Code Playgroud)
但它失败并出现错误:
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());
}
Run Code Online (Sandbox Code Playgroud)
被Z执行?
Nut*_*uts 10
可悲的是z,v模式没有实现。
在 Dart DateTime 具有时区信息之前,不会实施这些
有关此问题的更多信息https://github.com/dart-lang/intl/issues/19
DateFormat 用于以区域设置敏感的方式格式化和解析日期。
您不要求解析区域设置敏感的日期字符串,而是要求解析ISO 8601日期字符串,因此您不应该使用该类DateFormat。
相反,请使用DateTime.parsemethod,它支持您所描述的格式,根据其文档:
可接受的字符串示例:
- ...
- “2002-02-27T14:00:00-0500”:与“2002-02-27T19:00:00Z”相同
| 归档时间: |
|
| 查看次数: |
2859 次 |
| 最近记录: |