【问题标题】:Dart - Flutter - Aqueduct: strange behavior of DateTime.parse()Dart - Flutter - Aqueduct:DateTime.parse() 的奇怪行为
【发布时间】:2019-04-18 08:07:30
【问题描述】:

好人好人, 我真的对 DateTime.parse(); 的行为感到困惑;

在 dartpad 上可以使用

void main() {
      const String _iso8601 = '2019-04-01T08:30:00';
      final DateTime _date = DateTime.parse(_iso8601);
        print(_date.toIso8601String());
}

但在颤振中没有,但这确实

      const String _iso8601 = '2019-04-01T08:30:00.000';
      final DateTime _date = DateTime.parse(_iso8601);

我现在在渡槽中,这些作品都没有,包括这个

String _iso8601 = '2019-04-01T08:30:00Z';

请注意,“没有工作”并不是说它返回错误, 但只是一个空值。

[编辑:更正

当我模拟字符串而不是从它返回的请求正文中映射它时

发生了异常。格式异常(空)

但我又在使用 Iso8601]

如果您对这种情况有一些经验,我可以提供一些帮助。

[编辑:注意渡槽在 dart 2.0 上运行]

提前谢谢你,弗朗西斯科

【问题讨论】:

    标签: parsing dart flutter datetime-parsing aqueduct


    【解决方案1】:

    接受的字符串示例:

    "2012-02-27 13:27:00"
    "2012-02-27 13:27:00.123456z"
    "2012-02-27 13:27:00,123456z"
    "20120227 13:27:00"
    "20120227T132700"
    "20120227"
    "+20120227"
    "2012-02-27T14Z"
    "2012-02-27T14+00:00"
    "-123450101 00:00:00 Z": in the year -12345.
    "2002-02-27T14:00:00-0500": Same as "2002-02-27T19:00:00Z"
    

    【讨论】:

    • 是的,这似乎不是问题所在,我查看了文档,最接近我从 API 获得的内容是我在最后一个带有“Z”的最后,我尝试了“.000”毫秒......没有任何变化
    • 反之,在颤振中创建一个日期并打印到 Iso8601String 以查看它的样子
    • 在颤振和 dartpad 中返回此“'2019-04-01T08:30:00.000'”,这与颤振中观察到的行为一致(darpad 更加灵活,因为我不这样做理解);我没有检查渡槽,但我假设它应该返回相同的......但由于不解析它,我可能会看看
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-01
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 2022-07-20
    • 1970-01-01
    相关资源
    最近更新 更多