仅比较Dart中的DateTimes日期
我需要在我的应用中存储和比较日期(无时间),而无需关心时区。
我可以看到三种解决方案:
(date1.year == date2.year && date1.month == date2.month && date1.day == date2.day)
这就是我现在正在做的事情,但是太冗长了。
date1.format("YYYYMMDD") == date2.format("YYYYMMDD")
这仍然很冗长(尽管还不算太糟),但对我来说似乎效率不高…
自己创建一个新的Date类,也许将日期存储为“ YYYYMMDD”字符串,或者存储自1980年1月1日以来的天数。但这意味着重新实现一堆复杂的逻辑,例如不同的月份长度,加/减和leap年。
创建一个新类也避免了我担心的极端情况,Duration(days:
1)由于夏令时的更改,添加结果的日期相同。但是我可能没有想到这种方法的一些极端情况…
这些解决方案中哪一个最好,或者是我没有想到的更好的解决方案?
回答:
自从我问这个问题以来,扩展方法已经在Dart中发布了。我现在将实现选项1作为扩展方法:
extension DateOnlyCompare on DateTime { bool isSameDate(DateTime other) {
return this.year == other.year && this.month == other.month
&& this.day == other.day;
}
}
以上是 仅比较Dart中的DateTimes日期 的全部内容, 来源链接: utcz.com/qa/400333.html