Dart中的DateTime比较

时间:2019-06-15 20:18:09

标签: flutter dart

我正在尝试按升序对DateTime时间元素列表进行排序。我已经意识到像>或<这样的普通运算符不会删减它。比较两个DateTime变量的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

只需使用isAfter()中的方法isBefore()isAtSameMomentAs()DateTime

其他替代方法,如文档中所述,使用compareTo(DateTime other)

  

将此DateTime对象与[other]进行比较,   如果值相等,则返回零。

     

如果此DateTime [isBefore] [other]返回一个负值。返回0   如果它是[isAtSameMomentAs] [other],则返回正值;否则   (当此[isAfter] [other]时)。

下面是排序日期的代码示例:

void main() {
  var list = [
    DateTime.now().add(Duration(days: 3)),
    DateTime.now().add(Duration(days: 2)),
    DateTime.now(),
    DateTime.now().subtract(Duration(days: 1))
  ];

  list.sort((a, b) => a.compareTo(b));
  print(list);
}

看到它工作here

答案 1 :(得分:0)

这是我如何理解和实现在布尔模式下将导致真/假的代码。

DateTime valEnd = edate ;
DateTime date =DateTime.now();
bool valDate = date.isBefore(valEnd);