欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java8 日期和時(shí)間類的基本使用

 更新時(shí)間:2020年08月25日 11:26:12   作者:龍海成  
這篇文章主要介紹了Java 日期和時(shí)間類的基本使用,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下

前言

最近在重構(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)雪花算法

    這篇文章主要介紹了java算法之靜態(tài)內(nèi)部類實(shí)現(xiàn)雪花算法,對算法感興趣的同學(xué),一定要看一下
    2021-05-05
  • Java內(nèi)部類原理、概述與用法實(shí)例詳解

    Java內(nèi)部類原理、概述與用法實(shí)例詳解

    這篇文章主要介紹了Java內(nèi)部類原理、概述與用法,結(jié)合實(shí)例形式詳細(xì)分析了Java內(nèi)部類的相關(guān)概念、原理、訪問、調(diào)用方法等操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2019-03-03
  • Java的JSON轉(zhuǎn)換類庫GSON的基礎(chǔ)使用教程

    Java的JSON轉(zhuǎn)換類庫GSON的基礎(chǔ)使用教程

    GSON是谷歌開源的一款Java對象與JSON對象互相轉(zhuǎn)換的類庫,Java的JSON轉(zhuǎn)換類庫GSON的基礎(chǔ)使用教程,需要的朋友可以參考下
    2016-06-06
  • 詳解SpringBoot注冊Windows服務(wù)和啟動(dòng)報(bào)錯(cuò)的原因

    詳解SpringBoot注冊Windows服務(wù)和啟動(dòng)報(bào)錯(cuò)的原因

    這篇文章主要介紹了詳解SpringBoot注冊Windows服務(wù)和啟動(dòng)報(bào)錯(cuò)的原因,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • 深入探究Java線程與進(jìn)程有哪些區(qū)別

    深入探究Java線程與進(jìn)程有哪些區(qū)別

    這篇文章主要介紹了Java并發(fā)編程之線程創(chuàng)建,進(jìn)程是代碼在數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),是系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位,線程則是一個(gè)實(shí)體,一個(gè)進(jìn)程中至少有一個(gè)線程,下文更多相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-04-04
  • 使用maven方式創(chuàng)建springboot項(xiàng)目的方式

    使用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
  • 詳解java Collections.sort的兩種用法

    詳解java Collections.sort的兩種用法

    這篇文章主要介紹了詳解java Collections.sort的兩種用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 深入jetty的使用詳解

    深入jetty的使用詳解

    本篇文章是對jetty的使用進(jìn)行了詳細(xì)的分析解釋。需要的朋友參考下
    2013-05-05
  • SpringBoot使用Flyway進(jìn)行數(shù)據(jù)庫遷移的實(shí)現(xiàn)示例

    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的配置方法,看這篇夠了

    關(guān)于JDK+Tomcat+eclipse+MyEclipse的配置問題,很多朋友都搞不太明白,網(wǎng)上一搜配置方法多種哪種最精簡呢,今天小編給大家分享一篇文章幫助大家快速掌握J(rèn)DK Tomcat eclipse MyEclipse配置技巧,需要的朋友參考下吧
    2021-06-06

最新評論