Java?LocalDateTime獲取時間信息、格式化、轉(zhuǎn)換為數(shù)字時間戳代碼示例
一、描述
LocalDateTime是Java 8引入的日期和時間API (java.time包)中的一個類,不包含時區(qū)信息。它是一個不可變的類,提供了各種方法來處理日期和時間,且不關(guān)心時區(qū)的概念。若需要添加時區(qū)信息,可以使用atZone()方法轉(zhuǎn)換為ZonedDateTime進(jìn)行處理:
LocalDateTime now = LocalDateTime.now();
ZonedDateTime zonedDateTime = now.atZone(ZoneId.of("Asia/Shanghai"));
二、基本使用
1、獲取LocalDateTime時間
// 當(dāng)前時間 LocalDateTime now = LocalDateTime.now(); // 5050年12月12日 14時30分 30秒 30納秒 (秒和納秒的部分可以省略) LocalDateTime futureTime = LocalDateTime.of(5050, 12, 12, 14, 30, 30, 30); // 添加: plus..() plusDays、plusMonth、plusYears... LocalDateTime newTime_01 = now.plusDays(1); // 后一天 // 減少: minus..() minusDays、minusMonth、minusYears... LocalDateTime newTime_02 = now.minusDays(1); // 前一天 // 設(shè)置各部分時間 LocalDateTime newYear = now.withYear(4040); // 改為4040年 LocalDateTime newMinute = now.withMinute(10); // 改為10月份 LocalDateTime newDay = now.withDayOfMonth(12); // 改為12日 // 通過字符串獲取 String timeString = "5050-12-12 14:30"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); LocalDateTime parseTime = LocalDateTime.parse(timeString, formatter);
2、時間比較
boolean isBefore = now.isBefore(newTime_01); boolean isAfter = now.isAfter(newTime_01); boolean isEqual = now.isEqual(newTime_01);
3、獲取基本時間信息:
// get..() getHour、getMinute、getSecond... int year = now.getYear(); Month month = now.getMonth(); // Month是枚舉,返回值為月份的英文大寫 int hour = now.getHour(); // 其余同理
4、格式化 / 反格式化
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); // 轉(zhuǎn)換為字符串 String timeString = format.format(futureTime); // 字符串轉(zhuǎn)換為LocalDateTime LocalDateTime parseTime = LocalDateTime.parse(timeString, format);
5、轉(zhuǎn)換為數(shù)字時間戳
ZonedDateTime zonedDateTime = now.atZone(ZoneId.of("Asia/Shanghai")); Instant instant = zonedDateTime.toInstant(); long milli = instant.toEpochMilli(); // 以毫秒為單位的時間戳 long second = instant.getEpochSecond(); // 以秒為單位的時間戳
6、數(shù)字時間戳轉(zhuǎn)為LocalDateTime
// 以 毫秒 為單位的時間戳轉(zhuǎn)為LocalDateTime LocalDateTime timeByMilli = Instant.ofEpochMilli(milli).atZone(ZoneId.of("Asia/Shanghai")).toLocalDateTime(); // 以 秒 為單位的時間戳轉(zhuǎn)為LocalDateTime LocalDateTime timeBySecond = Instant.ofEpochSecond(second).atZone(ZoneId.of("Asia/Shanghai")).toLocalDateTime(); // LocalDate、LocalTime同理
總結(jié)
到此這篇關(guān)于Java LocalDateTime獲取時間信息、格式化、轉(zhuǎn)換為數(shù)字時間戳的文章就介紹到這了,更多相關(guān)Java LocalDateTim基本使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實(shí)現(xiàn)Redisson的基本使用
Redisson是一個在Redis的基礎(chǔ)上實(shí)現(xiàn)的Java駐內(nèi)存數(shù)據(jù)網(wǎng)格客戶端,本文主要介紹了java實(shí)現(xiàn)Redisson的基本使用,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12Java深入學(xué)習(xí)圖形用戶界面GUI之布局管理器
本文章向大家介紹Java GUI布局管理器,主要包括布局管理器使用實(shí)例、應(yīng)用技巧、基本知識點(diǎn)總結(jié)和需要注意事項(xiàng),具有一定的參考價(jià)值,需要的朋友可以參考一下2022-05-05Java設(shè)計(jì)模式之備忘錄模式_動力節(jié)點(diǎn)Java學(xué)院
我們在編程的時候,經(jīng)常需要保存對象的中間狀態(tài),當(dāng)需要的時候,可以恢復(fù)到這個狀態(tài)。接下來通過本文給大家分享java設(shè)計(jì)模式之備忘錄模式,感興趣的的朋友一起看看吧2017-08-08Java利用位運(yùn)算實(shí)現(xiàn)加減運(yùn)算詳解
這篇文章主要為大家介紹了如何使用位運(yùn)算來實(shí)現(xiàn)加減功能,也就是在整個運(yùn)算過程中不能出現(xiàn)加減符號。文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-12-12使用SpringBoot實(shí)現(xiàn)自動發(fā)送注冊驗(yàn)證碼郵件功能
一直以來,我都對程序如何自動發(fā)送郵件感到好奇,想象一下,當(dāng)你在某個網(wǎng)站注冊時,輸入郵箱后不久就收到一封帶有驗(yàn)證碼的郵件,這種體驗(yàn)既方便又高效,所以本文給大家介紹了如何用?Spring?Boot?實(shí)現(xiàn)自動發(fā)送注冊驗(yàn)證碼郵件,需要的朋友可以參考下2025-04-04hibernate 中 fetch=FetchType.LAZY 懶加載失敗處理方法
這篇文章主要介紹了hibernate 中 fetch=FetchType.LAZY 懶加載失敗處理方法,需要的朋友可以參考下2017-09-09