我正在开发一个 Flutter 项目,我需要比较两个 DateTime 对象,但仅按日期进行比较。 DateTime 对象的时间部分与我的比较无关。
这是我正在处理的 DateTime 对象的示例:
飞镖
DateTime dt1 = DateTime.parse("2023-11-10 11:47:00");
DateTime dt2 = DateTime.parse("2023-11-10 10:09:00");
我想比较 dt1 和 dt2,只考虑日期(年、月、日),而不考虑时间。我怎样才能在 Flutter 中实现这一目标?任何帮助,将不胜感激。谢谢!
在 Flutter 中,您可以通过从仅包含年、月和日信息的原始对象创建新的
DateTime
对象,来仅比较两个 DateTime
对象的日期(而不是时间)。这是一个例子:
DateTime dt1 = DateTime.parse("2023-11-10 11:47:00");
DateTime dt2 = DateTime.parse("2023-11-10 10:09:00");
// Create new DateTime objects with only year, month, and day
DateTime date1 = DateTime(dt1.year, dt1.month, dt1.day);
DateTime date2 = DateTime(dt2.year, dt2.month, dt2.day);
// Now you can compare date1 and date2
if(date1.compareTo(date2) == 0){
print("Both dates are the same.");
}
if(date1.compareTo(date2) < 0){
print("date1 is before date2");
}
if(date1.compareTo(date2) > 0){
print("date1 is after date2");
}
在此代码中,
date1
和date2
是分别从DateTime
和dt1
创建的新dt2
对象,但它们仅包含年、月和日信息。默认情况下,时间设置为 00:00:00。因此,当您比较 date1
和 date2
时,您实际上只是比较日期,而不是时间。