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