栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何比较两个不带时间部分的日期?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何比较两个不带时间部分的日期?

虽然Joda Time当时是一个不错的建议,但请java.time尽可能使用Java 8+中的库。

我的首选是使用Joda Time,这使此操作变得异常简单:

DateTime first = ...;DateTime second = ...;LocalDate firstDate = first.toLocalDate();LocalDate secondDate = second.toLocalDate();return firstDate.compareTo(secondDate);

编辑:如注释中所述,如果你使用DateTimeComparator.getDateonlyInstance()它甚至更简单:)

// TODO: consider extracting the comparator to a field.return DateTimeComparator.getDateonlyInstance().compare(first, second);

(“使用Joda时间”是几乎所有询问

java.util.Date
或的SO问题的基础
java.util.Calendar
。这是一个非常出色的API。如果你对日期/时间有重要意义,则应尽可能使用它。)

如果你绝对被迫使用内置API,则应Calendar使用适当的日期和适当的时区创建一个实例。然后,你可以将每个日历中的每个字段的小时,分​​钟,秒和毫秒设置为0,然后比较结果时间。与Joda解决方案相比绝对好用:)

时区部分是很重要的:

java.util.Date
是始终基于UTC。在大多数情况下,我对日期感兴趣,那就是特定时区中的日期。
Calendar
单独使用它会迫使你使用或使用Joda Time(除非你想自己考虑时区,我不建议这样做)。

Android开发人员快速参考

//Add joda library dependency to your build.gradle filedependencies {     ...     implementation 'joda-time:joda-time:2.9.9'}

示例代码(示例)

DateTimeComparator dateTimeComparator = DateTimeComparator.getDateonlyInstance();Date myDateOne = ...;Date myDateTwo = ...;int retVal = dateTimeComparator.compare(myDateOne, myDateTwo);if(retVal == 0)   //both dates are equalelse if(retVal < 0)   //myDateOne is before myDateTwoelse if(retVal > 0)   //myDateOne is after myDateTwo


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/407744.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号