亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java 日期時間工具包–java.time的使用

 更新時間:2021年04月23日 10:42:42   作者:攻城獅·正  
這篇文章主要介紹了Java 日期時間工具包–java.time的使用,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下

從JDK8開始,Java 提供了新的日期時間處理方法用來代替舊的日期類(Date)。本章主要講它們的用法以及和舊日期類互轉(zhuǎn)。

日期和時間

Java 新的日期工具類在 java.time 包及子包中 ,日期類主要有 LocalDateTime、LocalDate、LocalTime ,這三個API類很相似,以下是常用API及說明。

now()

靜態(tài)方法,獲取當(dāng)前時間日期。示例:LocalDateTime.now()

of()

靜態(tài)方法,指定日期時間生成LoalDateTime。示例:LocalDateTime.of(2020, 2, 9, 8, 0, 0)。如果是LocalDate,則只能指定年月日。如果是LocalTime則只能指定時分秒。

plus()

在當(dāng)前時間的基礎(chǔ)上增加時間并返回新的LocalDateTime,不會改變原來時間。一般使用以下方法處理更簡單:

方法 說明 備注
plusYears(1) 增加1年 LocalTime無此方法
plusMonths(1) 增加1個月 LocalTime無此方法
plusWeeks(1) 增加1周 LocalTime無此方法
plusDays(1) 增加1天 LocalTime無此方法
plusHours(1) 增加1小時 LocalDate無此方法
plusMinutes(1) 增加1分鐘 LocalDate無此方法
plusSeconds(1) 增加1秒 LocalDate無此方法

minus()

在當(dāng)前時間的基礎(chǔ)上減去時間并返回新的LocalDateTime,不會改變原來時間。一般使用以下方法處理更簡單:

方法 說明 備注
minusYears(1) 減少1年 LocalTime無此方法
minusMonths(1) 減少1個月 LocalTime無此方法
minusWeeks(1) 減少1周 LocalTime無此方法
minusDays(1) 減少1天 LocalTime無此方法
minusHours(1) 減少1小時 LocalDate無此方法
minusMinutes(1) 減少1分鐘 LocalDate無此方法
minusSeconds(1) 減少1秒 LocalDate無此方法

從上面幾個示例可以看到這三個類的區(qū)別,LocalDate不能處理時間,LocalTime不能處理日期,LocalDateTime是LocalDate和LocalTime的集合。

  • 獲取從1970-01-01 00:00:00到當(dāng)前對象時間的毫秒數(shù):
LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();

如果是LocalDate或LocaTime需要轉(zhuǎn)換成LocalDateTime對象,再獲取毫秒數(shù)

  • LocalDate轉(zhuǎn)LocalDateTime
// atTime()可以提定時間(時,分,秒),也可以傳LocalTime對象
LocalDate.now().atTime(0, 0, 0);
// 如果不需要指定當(dāng)天時間,使用該方法指定時分秒為都為0
LocalDate.now().atStartOfDay();
  • LocalTime轉(zhuǎn)LocalDateTime
LocalTime.now().atDate(LocalDate.now());

atDate()傳入LocalDate對象

  • LocalDateTime轉(zhuǎn)LocalDate和LocalTime
// 獲得日期
LocalDate date = LocalDateTime.now().toLocalDate();
// 獲得時間
LocalTime time = LocalDateTime.now().toLocalTime();
  • LocalDateTime與Date互轉(zhuǎn)
/**
 * LocalDateTime轉(zhuǎn)udate
 * @param datetime
 * @return
 */
public static Date localDateTimeToUDate(LocalDateTime datetime) {

    ZoneId zone = ZoneId.systemDefault();
    Instant instant = datetime.atZone(zone).toInstant();
    Date udate = Date.from(instant);
    return udate;
}

/**
 * udate轉(zhuǎn)LocalDateTime
 * @param date
 * @return
 */
public static LocalDateTime uDateToLocalDateTime(Date date) {

    Instant instant = date.toInstant();
    ZoneId zone = ZoneId.systemDefault();
    LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
    return localDateTime;
}

時區(qū)

如果系統(tǒng)有境外用戶,可能需要針對各地區(qū)不同時區(qū)處理。Java中使用的是格林時間(UTC),我們可以使用 ZoneOffset 設(shè)置偏移位置。

// ZoneOffset.of("+8") 等價 ZoneOffset.ofHours(8)
LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();

格式化

在舊的Date類,使用 SimpleDateFormat 格式化日期,該類不是線程安全的。在新的日期類中使用 DateTimeFormatter

LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;
log.info("-> {}", formatter.format(now));

DateTimeFormatter 定義好一些預(yù)格式化方式,以下是參照表:

還可以自定義格式:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 格式化
String str = formatter.format(LocalDateTime.now());
// 轉(zhuǎn)成LocalDateTime
LocalDateTime datetime = LocalDateTime.parse("2021-01-01 08:00:00", formatter);

以下是Pattern表達式參照表:

新的時間工具雖然復(fù)雜了些,但也更加靈活。以后的開發(fā)推薦使用新的工具包。

以上就是Java 日期時間工具包–java.time的使用的詳細(xì)內(nèi)容,更多關(guān)于java.time的使用的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解Java數(shù)字簽名提供XML安全

    詳解Java數(shù)字簽名提供XML安全

    在本篇文章中我們給大家整理了關(guān)于Java數(shù)字簽名提供XML安全的知識點內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2018-08-08
  • Java二叉樹查詢原理深入分析講解

    Java二叉樹查詢原理深入分析講解

    這篇文章主要介紹了Java二叉樹查詢原理,二叉查找樹,又稱二叉排序樹,亦稱二叉搜索樹,是數(shù)據(jù)結(jié)構(gòu)中的一類。在一般情況下,查找效率比鏈表結(jié)構(gòu)要高
    2022-11-11
  • Java日常練習(xí)題,每天進步一點點(34)

    Java日常練習(xí)題,每天進步一點點(34)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • 關(guān)于ApplicationContext的三個常用實現(xiàn)類

    關(guān)于ApplicationContext的三個常用實現(xiàn)類

    這篇文章主要介紹了關(guān)于ApplicationContext的三個常用實現(xiàn)類,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • JAVA應(yīng)用系統(tǒng)工具快捷托盤實例代碼

    JAVA應(yīng)用系統(tǒng)工具快捷托盤實例代碼

    JAVA應(yīng)用系統(tǒng)工具快捷托盤實例代碼,需要的朋友可以參考一下
    2013-02-02
  • java中synchronized關(guān)鍵字的3種寫法實例

    java中synchronized關(guān)鍵字的3種寫法實例

    synchronized是Java中的關(guān)鍵字,是一種同步鎖,下面這篇文章主要給大家介紹了關(guān)于java中synchronized關(guān)鍵字的3種寫法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-11-11
  • 判斷二叉樹是否為完全二叉樹的實例

    判斷二叉樹是否為完全二叉樹的實例

    這篇文章主要介紹了判斷二叉樹是否為完全二叉樹的實例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • java實現(xiàn)學(xué)生信息錄入界面

    java實現(xiàn)學(xué)生信息錄入界面

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)學(xué)生信息錄入界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • java解析xml之jdom解析xml示例分享

    java解析xml之jdom解析xml示例分享

    JDOM是專門為Java打造的API,JDOM采用了Java中的Collection架構(gòu)來封裝集合,是Java愛好者更加熟悉的模式,下面看使用示例
    2014-01-01
  • mybatis trim標(biāo)簽的使用詳解

    mybatis trim標(biāo)簽的使用詳解

    這篇文章主要介紹了mybatis trim標(biāo)簽的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評論