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

