fra*_*tal 5 iso8601 datetime-format dart flutter
在飞镖我想这样做:
var s = "2018-11-23T04:25:41.9241411Z"; // string comes from a json but represented here for simplicity like this
var d = DateTime.parse(s);
Run Code Online (Sandbox Code Playgroud)
但它抛出一个空值。
Dart 似乎无法解析 iso 8601 日期时间格式。我找到了一个名为“Iso8601DateTimeSerializer”的自定义序列化程序,但如何将其添加到我的 flutter 应用程序中?
链接:https : //reviewable.io/reviews/google/built_value.dart/429#-
此处的说明仅指示使用“SerializersBuilder.add”将其添加到 dart,但我是新手,无法找到方法?
链接:https : //pub.dartlang.org/documentation/built_value/latest/iso_8601_date_time_serializer/Iso8601DateTimeSerializer-class.html
问题是 DartDateTime.parse只接受最多六位小数秒,而您的输入有七位。
...然后可以选择一个“.” 接下来是一到六位数字的第二个小数。
您可以使用以下方法将输入清理为六位数字:
String restrictFractionalSeconds(String dateTime) =>
dateTime.replaceFirstMapped(RegExp(r"(\.\d{6})\d+"), (m) => m[1]);
Run Code Online (Sandbox Code Playgroud)
也许解析函数应该接受更多数字,即使它们不影响值。