【问题标题】:Flutter/Dart DateTime max min value颤振/飞镖日期时间最大值最小值
【发布时间】:2021-07-12 15:13:31
【问题描述】:

我想知道DateTime 的最小值和最大值以进行比较。

DateTimes 可以表示距纪元 (1970-01-01 UTC) 最多 100,000,000 天的时间值:-271821-04-20 到 275760-09-13。

我在DateTime 中没有看到最小值/最大值定义,有没有办法以编程方式获取最小值/最大值?

DateTime min;  // -271821-04-20  
DateTime max;  // 275760-09-13

【问题讨论】:

    标签: flutter datetime dart


    【解决方案1】:

    我在这篇文章中看到有人定义了最小值/最大值:

    https://github.com/google/json_serializable.dart/issues/796

        // DateTimes can represent time values that are at a distance of at most 100,000,000
        // days from epoch (1970-01-01 UTC): -271821-04-20 to 275760-09-13.
        static DateTime minDateTime = DateTime.utc(-271821,04,20);
        static DateTime maxDateTime = DateTime.utc(275760,09,13);
    

    【讨论】:

      【解决方案2】:

      目前似乎没有可用的东西。您可以提出功能请求并查看会发生什么,但现在唯一要做的就是为最大值和最小值创建 getter。不幸的是,我们也不能制作静态扩展方法,所以您只需要使用静态类或全局变量:

      class DateTimeMaxMin {
        static const _numDays = 100000000;
        
        static DateTime get min => DateTime.fromMicrosecondsSinceEpoch(0).subtract(Duration(days: _numDays));
        static DateTime get max => DateTime.fromMicrosecondsSinceEpoch(0).add(Duration(days: _numDays));
      }
      

      【讨论】:

        猜你喜欢
        • 2013-12-27
        • 2022-08-17
        • 1970-01-01
        • 2020-02-11
        • 1970-01-01
        • 1970-01-01
        • 2021-12-23
        • 2020-05-15
        • 1970-01-01
        相关资源
        最近更新 更多