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

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

34资源网2022-06-09473

我们平时开发日期一般都是使用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

分享给朋友:

相关文章

30条关于追逐梦想的励志语录分享

30条关于追逐梦想的励志语录分享

1、天行健,君子以自強不息,地勢坤,君子以厚德载物。…

好太太抽油烟机推荐,目前行业领先产品

好太太抽油烟机推荐,目前行业领先产品

好太太抽油烟机是目前行业当中比较领先的一个品牌,这个牌子的油烟机一直采用的是国际的先进生产技术,而且技术都是达到国际的标准了。另外好太太油烟机还有不同的研发中心。当收集完消费者的意见以后,好太太油烟机的研发中心就开始进行研发,生产出合乎消费…

50句非常励志的短句,正能量的励志句子

50句非常励志的短句,正能量的励志句子

1、人非要经历一番不同平时的劫难才能脱胎换骨,成为真正能解决问题的人。…

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

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

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

itunes备份路径在哪里(教你查看itunes备份路径)

itunes备份路径在哪里(教你查看itunes备份路径)

用itunes备份的都知道,备份到C盘的,日积月累,C盘越来越小了,上网教程参差不齐,本教程本人亲测,因为我看到我的64G SSD空间越来越小,伤不起!!!操作步骤1、下载Junction,将Junction.exe拷贝到C:Windows…

中小企业困在账期里,年关再掀清欠之战

中小企业困在账期里,年关再掀清欠之战

编者按:本文转自经济观察报,作者高若瀛,创业邦经授权转载。 中秋节当天,还在家陪孩子的杨劲松,突然接到事业部经理的电话。 对方在电话里有些紧张,说他们的大客户新力地产,股价“跌了5毛”。 杨劲松起初没当回事,晚上再瞄股价时,却从头凉到脚:股…