有没有更好的方法来比较一个日期和另一个日期



我的代码是:

for (var rt in list) {
if (rt.date.day == date2.day &&
rt.date.month == date2.month &&
rt.date.year == date2.year) {
...
}
}

有没有更好的方法来比较一个日期和另一个日期?

您可以制作一个助手函数来剥离时间:

DateTime dateOnly(DateTime dateTime) => DateTime(dateTime.year, dateTime.month, dateTime.day);

然后可以使用DateTime的普通operator ==:

if (dateOnly(rt.date) == dateOnly(date2)) {
...
}

请注意,上面的示例假设两个日期位于同一时区。如果它们可能在不同的时区,您应该精确定义两个DateTime具有相同"日期"的含义,并将两者转换为一个公共时区(可能是UTC(。

使用difference:

for (var rt in list) {
if (rt.date.difference(date2).inDays == 0) {
...
}
}

文档链接:https://api.flutter.dev/flutter/dart-core/DateTime/difference.html

您可以检查两个日期(我认为是date.difference(otherDate)(之间的差异,并检查这两个日期之间的差异是否很小,在您的上下文中,这可能会使它们"相等">

但是,事实证明,日期比较可能有点麻烦!:(

最新更新