我是靠谱客的博主 呆萌发夹,最近开发中收集的这篇文章主要介绍java创建date对象_在Java中比较Date对象的方式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

java创建date对象

让我们面对现实吧,在Java中对Date对象进行补全既复杂又容易出错。 在标准代码中就是这种情况,而在测试代码中也是如此,我们经常需要创建指向特定时间点的Date对象,以供我们进行比较。

过时的好方法

在测试代​​码中,我对使用不赞成使用的方法毫不犹豫。 因此,我使用了旧的Date构造函数来初始化日期:

Datedate=newDate(112,5,3);

优点:简洁。 缺点:确实不是很直观,您需要掌握Java API的知识才能知道第一个参数是Year减去1900,第二个参数是月数(从1月的0开始)。 得知最后一个参数仅仅是...一个月的某天几乎是一个惊喜。

规范的方式

自Java 1.1以来,Java API中引入了Calendar ,以在时间(日期)和特定引用(日历)中的视图之间分离。 以下代码片段是获得与上述结果相同的幼稚方法。

Calendarcalendar=Calendar.getInstance();
calendar.set(YEAR,2012);
calendar.set(MONTH,JUNE);
calendar.set(DAY_OF_MONTH,3);

这不仅更冗长,而且是一个错误:小时,分钟,其余都不为0(取决于日历的确切创建时间),因此在此处使用equals()将返回false 。 这是正确的代码:

Calendarcalendar=Calendar.getInstance();
calendar.set(YEAR,2012);
calendar.set(MONTH,JUNE);
calendar.set(DAY_OF_MONTH,3);
calendar.set(HOUR_OF_DAY,0);
calendar.set(MINUTE,0);
calendar.set(SECOND,0);
calendar.set(MILLISECOND,0);

至少可以说,它破坏了简洁的目的

Apache Commons Lang

自古以来, Apache Commons就提供了不同的实用程序库来帮助用Java开发。 这样的库之一就是Apache Commons Lang ,该库旨在提供值得作为Java API一部分的代码。

在我们的例子中, DateUtils类使我们缩短了前面的代码,同时保持了可读性:

Calendarcalendar=Calendar.getInstance();
calendar.set(YEAR,2012);
calendar.set(MONTH,JUNE);
calendar.set(DAY_OF_MONTH,3);
calendar=DateUtils.truncate(calendar,DAY_OF_MONTH);

更好的是, DateUtils让我们直接处理Date对象,也可以进行以下替代:

Datedate=newDate();
date=DateUtils.setYears(date,2012);
date=DateUtils.setMonths(date,JUNE);
date=DateUtils.setDays(date,3);
date=DateUtils.truncate(date,DAY_OF_MONTH);

请注意,它保留了不变的参数,从而增强了功能编程支持者所珍视的不变性。 优点:我们使用标准的Java API。 缺点:没有。 但是,成熟的DSL会不会感觉更合适?

乔达时间

最终的选择是使用Joda Time ,它旨在替代DateCalendar 。 它还催生了JSR-310 “一种新的和改进的Java日期和时间API”,它应该是Java 8的一部分(最初计划用于Java 7)。 整篇文章(甚至是迷你指南)都可以专门介绍Joda Time。 对于我们当前的关注,以下代码段可以有利地代替我们原来的代码段:

DateMidnightdm=newDateMidnight(2012,6,3);

回到第一个方框,似乎是:简洁明了。 但是,这些参数不言自明,不需要定期检查JavaDocs以了解如何初始化年份。 此外,类名的语义很清楚。 最后,toDate()方法使我们桥接到标准Java API。

结论

结论是你自己的。 至于我自己,我经常使用Apache Commons Lang,但这些天我倾向于Joda Time。

该代码在这里可以作为Eclipse / Maven项目归档文件获得。

如果您需要处理工作日,最近我们就知道了ObjectLab Kit。 我尚未使用它,欢迎您提供反馈。

翻译自: https://blog.frankel.ch/ways-of-comparing-date-objects-in-java/

java创建date对象

最后

以上就是呆萌发夹为你收集整理的java创建date对象_在Java中比较Date对象的方式的全部内容,希望文章能够帮你解决java创建date对象_在Java中比较Date对象的方式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部