仅在 Flutter 中按日期比较 DateTime 对象

问题描述 投票:0回答:1

我正在开发一个 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 dart date datetime comparison
1个回答
0
投票

在 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
时,您实际上只是比较日期,而不是时间。

© www.soinside.com 2019 - 2024. All rights reserved.