当前位置:首页 > 谈天说地

ja截取日期的年月日时间_ja获取date的年月日

34资源网2022-06-09498

我们平时开发日期一般都是使用Date类。在使用Date计算时,一般将会将Date转换成时间戳,即转换成ms后进行计算,这样做很麻烦。当然我们也可以使用三方日期类。

其实Ja8自带的日期类就相当的强大了,基本能满足各种计算。今天我们就来聊聊Ja8里面的日期类。

LocateDate与LocateDateTime

LocateDate获取的是日期,精确到天。LocateDateTime则可以精确到秒。

如上代码,运行结果为:

todayDateTime : 2021-11-02T16:13:02.638todayDate : 2021-11-02

我们需要精确日期到秒时可以使用LocalDateTime。如果只需要精确到天,就可以使用LocalDate,比如判断两个日期是否为同就可以使用LocalDate。

如果你的需求只需要获取时间,不需要日期。可以使用LocalTime。

@Testpublic void getCurrentTime() {  LocalTime localTime = LocalTime.now();  System.out.println("localTime :" + localTime);}

运行结果为:

localTime :16:20:20.111

由此可见Ja8后日期类更加丰富了,对日期类的处理也更加人化了。

获取日期的年月日

Ja8的LocalDate里面自带的方法可以获取到日期的年月日。

//获取年、月、日信息@Testpublic void getDetailDate() {    LocalDate today = LocalDate.now();    int year = today.getYear();    int month = today.getMonthValue();    int day = today.getDayOfMonth();    Console.log("Year : {}  Month : {}  day : {}", year, month, day);    //Year : 2021  Month : 10  day : 29}

如上代码,返回的是:

Year : 2021  Month : 10  day : 29

判断两个日期是否相等

我们有时会有需求:判断两个日期是否为同。比如签到功能,每次签到前需要判断今天是否已经签到。如果在Ja8之前我们可能会转换成时间戳,通过时间戳作比较。到了Ja8后,我们直接可以使用equals()方法。

如上代码,运行结果为:

today [2021-11-03] 和 date1 [2021-11-03] 是同

LocalDate重写了equals方法。

@Overridepublic boolean equals(Object obj) {    if (this == obj) {        return true;    }    if (obj instanceof LocalDate) {        return compareTo0((LocalDate) obj) == 0;    }    return false;}int compareTo0(LocalDate otherDate) {    int cmp = (year - otherDate.year);    if (cmp == 0) {        cmp = (month - otherDate.month);        if (cmp == 0) {            cmp = (day - otherDate.day);        }    }    return cmp;}

从重写的equals源码来看,是将两个日期的年月日依次作比较。

计算生日

如果我们知道用户的出生日期,我们要判断今天是不是用户的生日。我们就可以使用MonthDay这个类。

如上代码,通过MonthDay可以获取到月和日,然后直接使用equals()方法即可进行判断。

运行结果为:

生日快乐 !!

时间加减

我们经常会计算时间,比如给当前时间加两小时,减两小时等。

上面代码运行结果为:

Time after 2 hours : 16:40:30.997newLocalDateTime after 2 hours : 2021-11-03T16:40:30.997

Ja8的日期不仅可以加小时。秒,月,天,年等都可以加。

如果需要减时间,可以使用minusXXX()方法。

日期大小比较

Ja8可以使用isBefore和isAfter来进行日期之间的比较。

上面代码运行结果为:

Yesterday is day before today

判断闰年

如果需要判断当前年是不是闰年,使用Ja8的isLeapYear非常方便。

@Testpublic void isLeapYear() {    LocalDate today = LocalDate.now();    if (today.isLeapYear()) {        System.out.println("今年是闰年");    } else {        System.out.println("今年不是闰年");    }}

isLeapYear的方法如下

@Overridepublic boolean isLeapYear(long prolepticYear) {    return ((prolepticYear & 3) == 0) && ((prolepticYear % 100) != 0 || (prolepticYear % 400) == 0);}

计算两个日期之间的差

Ja8可以使用Period.between可以获取两个日期之间相差的年月日。

上面代码运行结果

destLocalDate【2018-05-14】到today【2021-11-03】相差了【3】年【5】月【20】天

当然,我们可能还需要计算得更精确,比如计算相差多少天,多少秒等。这时就可以使用ChronoUnit枚举。

ChronoUnit提供了丰富的类别,完全满足各种需求。

今天的文章就写到这里了,如果对你有帮助,欢迎点赞+转发。

看完文章,还可以扫描下面的二维码下载快手极速版领4元红包

快手极速版二维码

快手极速版新人见面礼

除了扫码领红包之外,大家还可以在快手极速版做签到,看视频,做任务,参与抽奖,邀请好友赚钱)。

邀请两个好友奖最高196元,如下图所示:

快手极速版邀请好友奖励

扫描二维码推送至手机访问。

版权声明:本文由34楼发布,如需转载请注明出处。

本文链接:https://www.34l.com/post/17192.html

分享给朋友:

相关文章

木村久一:所谓天才人物指的就是具有毅力的人、勤奋的人、入迷的人和忘我的人

木村久一:所谓天才人物指的就是具有毅力的人、勤奋的人、入迷的人和忘我的人

木村久一:所谓天才人物指的就是具有毅力的人、勤奋的人、入迷的人和忘我的人。…

软件解压后怎么安装(手机解压软件app免费软件)

软件解压后怎么安装(手机解压软件app免费软件)

在PC端宅男、极客们会碰到需要解压缩文件的情况,这个时候大多会用到360压缩或者好压等第三方软件,然而到了移动手机端,由于自带的文件管理器大多不支持输入密码解压缩等复杂操作,让不少人对于手机解压缩文件失望,但是有时候电脑不在身边,又不得不在…

g系列cpu性能排行(英特尔u系列和g系列)

g系列cpu性能排行(英特尔u系列和g系列)

去年10月,AMD正式发布Zen 3架构锐龙5000系列处理器,单线程和多线程性能实现“质”的飞跃,反超当时的10代酷睿处理器,与后来发布的11代酷睿处理器相比,也丝毫不落于下风。 在这样的大前提下,AMD于4月发布了Zen 3架构锐龙5…

没想到,理想汽车成了“蔚小理”中最有钱的公司

没想到,理想汽车成了“蔚小理”中最有钱的公司

图源:摄图网 编者按:本文来自微信公众号连线出行(ID:lianxianchuxing),作者:周雄飞,创业邦经授权转载 曾几何时,理想汽车还是“蔚小理”三兄弟之中最落魄的一家。 理想汽车于2015年7月由李想创立,虽然与蔚来、小鹏相比起步…

汽车中的8848,高合HiPhi X顶配售价高达80万,你会买单吗?

汽车中的8848,高合HiPhi X顶配售价高达80万,你会买单吗?

编者按:本文来自微信公众号银杏科技(ID:yinxingcj),作者:负束,编辑:白望,创业邦经授权转载 2015年9月丁磊加入乐视,担任乐视超级汽车联合创始人、法拉第未来全球CEO。 当时丁磊一定没想到,乐视很快就会陷入了资金链断裂,贾跃…