Flutter/Dart DateTime最大最小值

mf98qq94  于 2023-08-07  发布在  Flutter
关注(0)|答案(3)|浏览(141)

我想知道DateTime的最小值和最大值以供比较。
DateTimes可以表示距离epoch(1970-01-01 UTC)最多100,000,000天的时间值:-271821-04-20至275760-09-13。
我在DateTime中没有看到最小/最大值的定义,有没有什么方法可以通过编程获得最小/最大值?

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

字符串

ia2d9nvy

ia2d9nvy1#

这似乎不是目前可用的东西。您可以提出一个特性请求,然后看看会发生什么,但现在唯一要做的就是为最大值和最小值创建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));
}

字符串

41zrol4v

41zrol4v2#

我在这篇文章中看到有人定义了min/max:
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);

字符串

flvlnr44

flvlnr443#

对于showDateRangePicker中的firstDate,minDateTime类似于DateTime.utc(-271820, 12, 31)

相关问题