JDK8時(shí)間相關(guān)類超詳細(xì)總結(jié)(含多個(gè)實(shí)例)
一、帶時(shí)區(qū)的時(shí)間
1.獲取當(dāng)前時(shí)間對(duì)象(帶時(shí)區(qū))
import java.time.ZonedDateTime;
public class demo1 {
public static void main(String[] args) {
ZonedDateTime now = ZonedDateTime.now();
System.out.println(now);
}
}2023-01-13T19:24:18.389+08:00[Asia/Shanghai]
2.獲取指定的時(shí)間對(duì)象(帶時(shí)區(qū))1/年月日時(shí)分秒納秒方式指定
import java.time.Instant;
public class demo1 {
public static void main(String[] args) {
ZonedDateTime time1 = ZonedDateTime.of(2023, 1, 1, 8, 30, 0, 0, ZoneId.of("Asia/Shanghai"));
System.out.println(time1);
}
}2023-01-01T08:30+08:00[Asia/Shanghai]
3.通過(guò)Instant + 時(shí)區(qū)的方式指定獲取時(shí)間對(duì)象
import java.time.Instant;
public class demo1 {
public static void main(String[] args) {
Instant instant = Instant.ofEpochMilli(0L);
ZoneId zoneId = ZoneId.of("Asia/Shanghai");
ZonedDateTime time2 = ZonedDateTime.ofInstant(instant, zoneId);
System.out.println(time2);
}
}1970-01-01T08:00+08:00[Asia/Shanghai]
4.修改時(shí)間
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class Demo8 {
public static void main(String[] args) {
Instant instant = Instant.ofEpochMilli(0L);
ZoneId zoneId = ZoneId.of("Asia/Shanghai");
ZonedDateTime time2 = ZonedDateTime.ofInstant(instant, zoneId);
ZonedDateTime time3 = time2.withYear(2000);
System.out.println(time3);
ZonedDateTime time4 = time3.minusYears(1);
System.out.println(time4);
ZonedDateTime time5 = time4.plusYears(1);
System.out.println(time5);
}
}2000-01-01T08:00+08:00[Asia/Shanghai]
1999-01-01T08:00+08:00[Asia/Shanghai]
2000-01-01T08:00+08:00[Asia/Shanghai]
二、DateTimeFormatter
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
//獲取時(shí)間對(duì)象
ZonedDateTime time = Instant.now().atZone(ZoneId.of("Asia/Shanghai"));
// 解析/格式化器
DateTimeFormatter dtf1=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm;ss EE a");
// 格式化
System.out.println(dtf1.format(time));
2023-01-14 23:55;55 星期六 下午
三、LocalDate
1. 獲取當(dāng)前時(shí)間的日歷對(duì)象(包含年月日)
//1.獲取當(dāng)前時(shí)間的日歷對(duì)象(包含 年月日)
LocalDate nowDate = LocalDate.now();
//System.out.println("今天的日期:" + nowDate);
2.獲取指定的時(shí)間的日歷對(duì)象
LocalDate ldDate = LocalDate.of(2023, 1, 1);
System.out.println("指定日期:" + ldDate);
System.out.println("=============================");
//3.get系列方法獲取日歷中的每一個(gè)屬性值//獲取年
int year = ldDate.getYear();
System.out.println("year: " + year);
//獲取月//方式一:
Month m = ldDate.getMonth();
System.out.println(m);
System.out.println(m.getValue());
//方式二:
int month = ldDate.getMonthValue();
System.out.println("month: " + month);
//獲取日
int day = ldDate.getDayOfMonth();
System.out.println("day:" + day);
//獲取一年的第幾天
int dayofYear = ldDate.getDayOfYear();
System.out.println("dayOfYear:" + dayofYear);
//獲取星期
DayOfWeek dayOfWeek = ldDate.getDayOfWeek();
System.out.println(dayOfWeek);
System.out.println(dayOfWeek.getValue());
//is開頭的方法表示判斷
System.out.println(ldDate.isBefore(ldDate));
System.out.println(ldDate.isAfter(ldDate));
//with開頭的方法表示修改,只能修改年月日
LocalDate withLocalDate = ldDate.withYear(2000);
System.out.println(withLocalDate);
//minus開頭的方法表示減少,只能減少年月日
LocalDate minusLocalDate = ldDate.minusYears(1);
System.out.println(minusLocalDate);
//plus開頭的方法表示增加,只能增加年月日
LocalDate plusLocalDate = ldDate.plusDays(1);
System.out.println(plusLocalDate);四、LocalTime
1.獲取本地時(shí)間的日歷對(duì)象(包含時(shí)分秒)
LocalTime nowTime = LocalTime.now();
System.out.println("今天的時(shí)間:" + nowTime);
int hour = nowTime.getHour();//時(shí)
System.out.println("hour: " + hour);
int minute = nowTime.getMinute();//分
System.out.println("minute: " + minute);
int second = nowTime.getSecond();//秒
System.out.println("second:" + second);
int nano = nowTime.getNano();//納秒
System.out.println("nano:" + nano);
System.out.println("------------------------------------");
System.out.println(LocalTime.of(8, 20));//時(shí)分
System.out.println(LocalTime.of(8, 20, 30));//時(shí)分秒
System.out.println(LocalTime.of(8, 20, 30, 150));//時(shí)分秒納秒
LocalTime mTime = LocalTime.of(8, 20, 30, 150);
2.is系列的方法
System.out.println(nowTime.isBefore(mTime)); System.out.println(nowTime.isAfter(mTime));
3.with系列的方法
這個(gè)系列的方法有局限性,只能修改時(shí)、分、秒
System.out.println(nowTime.withHour(10));
4.plus系列的方法
這個(gè)系列的方法有局限性,只能修改時(shí)、分、秒
System.out.println(nowTime.plusHours(10));
五、LocalDateTime
1.當(dāng)前時(shí)間的的日歷對(duì)象(包含年月日時(shí)分秒)
LocalDateTime nowDateTime = LocalDateTime.now();
System.out.println("今天是:" + nowDateTime);//今天是:
System.out.println(nowDateTime.getYear());//年
System.out.println(nowDateTime.getMonthValue());//月
System.out.println(nowDateTime.getDayOfMonth());//日
System.out.println(nowDateTime.getHour());//時(shí)
System.out.println(nowDateTime.getMinute());//分
System.out.println(nowDateTime.getSecond());//秒
System.out.println(nowDateTime.getNano());//納秒
2.獲取日:當(dāng)年的第幾天
System.out.println("dayofYear:" + nowDateTime.getDayOfYear());
3.獲取星期
System.out.println(nowDateTime.getDayOfWeek()); System.out.println(nowDateTime.getDayOfWeek().getValue());
4.獲取月份
System.out.println(nowDateTime.getMonth()); System.out.println(nowDateTime.getMonth().getValue()); LocalDate ld = nowDateTime.toLocalDate(); System.out.println(ld); LocalTime lt = nowDateTime.toLocalTime(); System.out.println(lt.getHour()); System.out.println(lt.getMinute()); System.out.println(lt.getSecond());
六、結(jié)語(yǔ)
到此這篇關(guān)于JDK8時(shí)間相關(guān)類超詳細(xì)總結(jié)的文章就介紹到這了,更多相關(guān)JDK8時(shí)間相關(guān)類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用socket實(shí)現(xiàn)網(wǎng)絡(luò)聊天室和私聊功能
這篇文章主要介紹了使用socket實(shí)現(xiàn)網(wǎng)絡(luò)聊天室和私聊功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
通過(guò)原理解析Spring mvc的內(nèi)置編碼過(guò)濾器
這篇文章通過(guò)原理主要給大家解析了關(guān)于Spring mvc的內(nèi)置編碼過(guò)濾器的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-09-09
Java Selenium實(shí)現(xiàn)多窗口切換的示例代碼
這篇文章主要介紹了Java Selenium實(shí)現(xiàn)多窗口切換的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
mybatisplus的坑?insert標(biāo)簽insert?into?select無(wú)參數(shù)問(wèn)題的解決
這篇文章主要介紹了mybatisplus的坑?insert標(biāo)簽insert?into?select無(wú)參數(shù)問(wèn)題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
Java中小球碰撞并使用按鈕控制數(shù)量實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于Java中小球碰撞并使用按鈕控制數(shù)量的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-12-12
通過(guò)實(shí)例了解Java Integer類和int的區(qū)別
這篇文章主要介紹了通過(guò)實(shí)例了解Java Integer類和int的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
java數(shù)據(jù)結(jié)構(gòu)排序算法之歸并排序詳解
這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)排序算法之歸并排序,結(jié)合具體實(shí)例形式詳細(xì)分析了歸并排序的原理、實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-05-05
Spring MVC 更靈活的控制 json 返回問(wèn)題(自定義過(guò)濾字段)
本篇文章主要介紹了Spring MVC 更靈活的控制 json 返回問(wèn)題(自定義過(guò)濾字段),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-02-02

