Java8 日期和時(shí)間類的基本使用
前言
最近在重構(gòu)之前的一個(gè)老項(xiàng)目,其中包含一個(gè)統(tǒng)計(jì)模塊,需要把存儲在MongoDB的數(shù)據(jù)通過接口顯示在后端管理系統(tǒng)中。這些數(shù)據(jù)大多是以時(shí)間為單位進(jìn)行存儲,例如:collectionName_202009collectionName_20200910,在老系統(tǒng)中對時(shí)間的處理使用Date類,簡單了解了其中的時(shí)間工具類,深感繁瑣并決定使用Java8中的LocalDateTime和LocalDate重構(gòu)此代碼。
基本使用
1.獲取當(dāng)前時(shí)間
// 2020-08-23T20:14:56.977 LocalDateTime localDateTime = LocalDateTime.now(); //2020-08-23 LocalDate localDate = LocalDate.now();
2.格式化時(shí)間
LocalDateTime localDateTime = LocalDateTime.now();
DateTimeFormatter localDateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss", Locale.SIMPLIFIED_CHINESE);
// 2020-08-23 20:20:29
String timeStr = localDateTime.format(localDateTimeFormatter);
LocalDate localDate = LocalDate.now();
DateTimeFormatter localDateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// 2020-08-23
String dateStr = localDate.format(localDateFormatter);
3.獲取昨天、明天或者固定天數(shù)的時(shí)間
LocalDateTime localDateTime = LocalDateTime.now();
DateTimeFormatter localDateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss", Locale.SIMPLIFIED_CHINESE);
// 今天
String time = localDateTime.format(localDateTimeFormatter);
// 昨天
LocalDateTime yesterday = localDateTime.minusDays(1L);
String yesterdayStr = yesterday.format(localDateTimeFormatter);
// 后天
LocalDateTime tomorrow = localDateTime.plusDays(1L);
String tomorrowStr = tomorrow.format(localDateTimeFormatter);
// 天數(shù)加5
LocalDateTime timePlus = localDateTime.plusDays(5L);
String timePlusStr = timePlus.format(localDateTimeFormatter);
// 天數(shù)減5
LocalDateTime timeMinus = localDateTime.minusDays(5L);
String timeMinusStr = timeMinus.format(localDateTimeFormatter);
在LocalDateTime的API中包含了對各個(gè)時(shí)間單位的增加和減少,如:

4.獲取今天的開始時(shí)間和結(jié)束時(shí)間,精確到秒
DateTimeFormatter localDateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss", Locale.SIMPLIFIED_CHINESE);
// 2020-08-23 00:00:00
String start = LocalDateTime.of(LocalDate.now(), LocalTime.MIN).format(localDateTimeFormatter);
// 2020-08-23 23:59:59
String end = LocalDateTime.of(LocalDate.now(), LocalTime.MAX).format(localDateTimeFormatter);
// 這里的LocalDate.now()表示獲取今天的開始時(shí)間和結(jié)束時(shí)間,也可以換做任何一天
5.獲取當(dāng)月的第一天和最后一天
// 這里使用LocalDate來獲取日期
DateTimeFormatter localDateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.SIMPLIFIED_CHINESE);
LocalDate localDate = LocalDate.now();
LocalDate firstDay = localDate.with(TemporalAdjusters.firstDayOfMonth());
LocalDate lastDay = localDate.with(TemporalAdjusters.lastDayOfMonth());
6.將時(shí)間字符串轉(zhuǎn)為時(shí)間或日期
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss", Locale.SIMPLIFIED_CHINESE);
String str = "2018-08-09 20:10:10";
LocalDateTime localDateTime = LocalDateTime.parse(str, formatter);
LocalDate localDate = LocalDate.parse(str, formatter);
7.計(jì)算日期間隔
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.SIMPLIFIED_CHINESE);
String str = "2020-09-02";
LocalDate localDate = LocalDate.parse(str, formatter);
long until = LocalDate.now().until(localDate, ChronoUnit.DAYS);
以上就是Java8 日期和時(shí)間類的基本使用的詳細(xì)內(nèi)容,更多關(guān)于Java 日期和時(shí)間類的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
java算法之靜態(tài)內(nèi)部類實(shí)現(xiàn)雪花算法
這篇文章主要介紹了java算法之靜態(tài)內(nèi)部類實(shí)現(xiàn)雪花算法,對算法感興趣的同學(xué),一定要看一下2021-05-05
Java的JSON轉(zhuǎn)換類庫GSON的基礎(chǔ)使用教程
GSON是谷歌開源的一款Java對象與JSON對象互相轉(zhuǎn)換的類庫,Java的JSON轉(zhuǎn)換類庫GSON的基礎(chǔ)使用教程,需要的朋友可以參考下2016-06-06
詳解SpringBoot注冊Windows服務(wù)和啟動報(bào)錯(cuò)的原因
這篇文章主要介紹了詳解SpringBoot注冊Windows服務(wù)和啟動報(bào)錯(cuò)的原因,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03
使用maven方式創(chuàng)建springboot項(xiàng)目的方式
使用Spring Initializr創(chuàng)建spring boot項(xiàng)目,因?yàn)橥饩W(wǎng)問題導(dǎo)致很難成功,所以只能使用maven方式,這里介紹下使用maven方式創(chuàng)建springboot項(xiàng)目的方法,感興趣的朋友一起看看吧2022-09-09
SpringBoot使用Flyway進(jìn)行數(shù)據(jù)庫遷移的實(shí)現(xiàn)示例
Flyway是一個(gè)數(shù)據(jù)庫遷移工具,它提供遷移歷史和回滾的功能,本文主要介紹了如何使用Flyway來管理Spring Boot應(yīng)用程序中的SQL數(shù)據(jù)庫架構(gòu),感興趣的可以了解一下2023-08-08
關(guān)于JDK+Tomcat+eclipse+MyEclipse的配置方法,看這篇夠了
關(guān)于JDK+Tomcat+eclipse+MyEclipse的配置問題,很多朋友都搞不太明白,網(wǎng)上一搜配置方法多種哪種最精簡呢,今天小編給大家分享一篇文章幫助大家快速掌握J(rèn)DK Tomcat eclipse MyEclipse配置技巧,需要的朋友參考下吧2021-06-06

