首页 > 解决方案 > 比较两个 DateTime-s 在 Dart 中是否具有相同的年月日

问题描述

如果它们是同一日期DateTime date1DateTime date2我需要比较它们。

一个简单的选项就是将date1.year, date1.month,date1.daydate2的对应值进行比较。有没有更好的办法?

标签: dart

解决方案


您可以编写一个易于使用的扩展:

extension DateTimeExtension on DateTime {
  bool isSameDay(DateTime date) {
    // ignore hour,minute,second..
    final dateFormat = DateFormat("yyyy-MM-dd");
    final date1 = dateFormat.format(this);
    final date2 = dateFormat.format(date);
    return date1 == date2;
  }
}

用法:

final date1 = DateTime(2021, 12, 10, 01, 01, 01);
final date2 = DateTime(2021, 12, 10, 23, 59, 59);
print(date1.isSameDay(date2)); // true

推荐阅读