国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Java8的LocalDateTime還沒搞懂?一文輕松解決掉你的煩惱

開發 前端
LocalDateTime、LocalDate、LocalTime 是 Java8 全新的日期框架,加強了對時間的管理,有很多特別好用的時間運算方法,而且是線程安全的,較之前的 util.Date 以及 Calander 使用起來更加的方便直觀,下面介紹幾種常見的日期對象用法。

哈嘍,大家好,我是了不起。

LocalDateTime 是Java8中新加入的日期時間類,現在都 Java20 了,不會還有人沒用過 LocalDateTime 吧?

今天給大家演示一下 LocalDateTime 的常用方法。

前言

LocalDateTime、LocalDate、LocalTime 是 Java8 全新的日期框架,加強了對時間的管理,有很多特別好用的時間運算方法,而且是線程安全的,較之前的 util.Date 以及 Calander 使用起來更加的方便直觀,下面介紹幾種常見的日期對象用法。

  • LocalDateTime:日期加時間的日期對象,包含年月日時分秒
  • LocalDate:日期類,包含年月日
  • LocalTime:時間類,包含時分秒

LocalDateTime

獲取當前時間

@Test
public void test() {
LocalDate localDate = LocalDate.now();
LocalTime localTime = LocalTime.now();
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println("localDate:"+localDate);//2023-02-22
System.out.println("localTime:"+localTime);//17:25:36.590
System.out.println("localDateTime:"+localDateTime);//2023-02-22T17:25:36.590
}

輸出結果:

圖片

可以看到不用做格式轉換就可以得到可讀性很高的日期格式。注意:ISO 8601規定的日期和時間分隔符是T。標準格式如下:

  • 日期:yyyy-MM-dd
  • 時間:HH:mm:ss
  • 帶毫秒的時間:HH:mm:ss.SSS
  • 日期和時間:yyyy-MM-dd'T'HH:mm:ss
  • 帶毫秒的日期和時間:yyyy-MM-dd'T'HH:mm:ss.SSS

獲取當前時間的年月日時分秒

@Test
public void test() {
LocalDateTime localDateTime = LocalDateTime.now(); // 獲取當前時間
int year = localDateTime.getYear(); // 獲取年份 2023
int month = localDateTime.getMonthValue(); // 獲取月份 2
int day = localDateTime.getDayOfMonth(); // 獲取月中的天數 22
int hour = localDateTime.getHour(); // 獲取當前的小時 17
int minute = localDateTime.getMinute(); // 獲取當前分鐘 33
int second = localDateTime.getSecond(); // 獲取當前秒數 22
System.out.println(year);
System.out.println(month);
System.out.println(day);
System.out.println(hour);
System.out.println(minute);
System.out.println(second);
}

輸出結果:

圖片

給LocalDateTime賦值

在static目錄中新建kaptcha.html頁面,代碼如下:

public void test() {
LocalDateTime of = LocalDateTime.of(2023,2,22,22,22,22);
System.out.println(of); // 輸出2023-02-22T22:22:22
}

時間與字符串相互轉換

@Test
public void test() {
// 將字符串轉換為指定格式的時間(格式要和給定的格式一致,不然會報錯)
LocalDateTime parse = LocalDateTime.parse("2023-02-22 22:22:22", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LocalDateTime parse1 = LocalDateTime.parse("2023 02 22 22:22:22", DateTimeFormatter.ofPattern("yyyy MM dd HH:mm:ss"));
LocalDateTime parse2 = LocalDateTime.parse("2023.02.22 22:22:22", DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm:ss"));
System.out.println(parse); // 輸出2023-02-22T22:22:22
System.out.println(parse1); // 輸出2023-02-22T22:22:22
System.out.println(parse2); // 輸出2023-02-22T22:22:22
// 時間轉字符串
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter of = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String dateTime = now.format(of);
System.out.println(dateTime); // 輸出 2023-02-22 17:56:18
}

輸出結果:

圖片

時間運算:加上對應時間

LocalDateTime提供了對日期和時間進行加減的非常簡單的鏈式調用,讓時間運算變得非常簡單:

@Test
public void test() {
LocalDateTime now = LocalDateTime.now(); // 當前時間2023-02-22T18:00:19.352
LocalDateTime plusYears= now.plusYears(2); // 在當前時間加上2年2025-02-22T18:00:19.352
LocalDateTime plusMnotallow= now.plusMonths(2);// 在當前時間商加上2月2023-04-22T18:00:19.352
LocalDateTime plusDays= now.plusDays(2); // 在當前時間加上2天2023-02-24T18:00:19.352
LocalDateTime plusHours= now.plusHours(2); // 在當前時間加上2個小時2023-02-22T20:00:19.352
LocalDateTime plusMinutes= now.plusMinutes(30); // 在當前時間加上30分鐘2023-02-22T18:30:19.352
LocalDateTime plusSeconds = now.plusSeconds(30); // 在當前時間加上30秒2023-02-22T18:00:49.352
System.out.println(now);
System.out.println(plusYears);
System.out.println(plusMonths);
System.out.println(plusDays);
System.out.println(plusHours);
System.out.println(plusMinutes);
System.out.println(plusSeconds);
}

輸出結果:

圖片

時間運算:減去對應時間

@Test
public void test() {
LocalDateTime now = LocalDateTime.now(); // 當前時間
LocalDateTime minusYears = now.minusYears(2); // 在當前時間減上2年
LocalDateTime minusMonths = now.minusMonths(2);// 在當前時間商減上2月
LocalDateTime minusDays = now.minusDays(2); // 在當前時間減上2天
LocalDateTime minusHours = now.minusHours(2); // 在當前時間減上2個小時
LocalDateTime minusMinutes = now.minusMinutes(30); // 在當前時間減上30分鐘
LocalDateTime minusSeconds = now.minusSeconds(30); // 在當前時間減上30秒
System.out.println("now:" + now);
System.out.println("minusYears:" + minusYears);
System.out.println("minusMonths:" + minusMonths);
System.out.println("minusDays:" + minusDays);
System.out.println("minusHours:" + minusHours);
System.out.println("minusMinutes:" + minusMinutes);
System.out.println("minusSeconds:" + minusSeconds);
}

輸出結果:

圖片

兩個時間比較

@Test
public void test() {
LocalDateTime now = LocalDateTime.now(); // 當前時間
LocalDateTime now1 = now.plusYears(5); // 在當前時間加上5年
// 給LocalDateTime 賦值
LocalDateTime of = LocalDateTime.of(2023,2,2,22,22,22);
LocalDateTime of1 = LocalDateTime.of(2023,8,5,1,1,1);
//兩個時間作比較,第一個時間減去第二個時間(如果年份相同,比較月份,月份相同比較天數,以此類推)
int compareTo = now1.compareTo(now);
int compareTo1 = now.compareTo(now1);
int compareTo2 = now.compareTo(of);
int compareTo3 = now.compareTo(of1);
System.out.println(now); // 輸出 2023-02-22T20:19:44.112v
System.out.println(now1); // 輸出 2028-02-22T20:19:44.112
System.out.println(of); // 輸出 2023-02-02T22:22:22
System.out.println(of1); // 輸出 2023-08-05T01:01:01
System.out.println(compareTo); // 輸出 5
System.out.println(compareTo1); // 輸出 -5
System.out.println(compareTo2); // 輸出 20
System.out.println(compareTo3); // 輸出 -6
}

輸出結果:

圖片

利用Duration計算時間差

注意沒有計算相差的年和秒值,對于要計算相差的秒數,可以利用計算毫秒來進行轉換

@Test
public void test() {
LocalDateTime now = LocalDateTime.now(); // 當前時間
// 給LocalDateTime 賦值
LocalDateTime of = LocalDateTime.of(2022,2,22,2,2,2);
Duration duration = Duration.between(of,now); // 后面減去前面
long toDays = Duration.between(of,now).toDays(); //相差的天數
long toHours = Duration.between(of,now).toHours();//相差的小時數
long toMinutes = Duration.between(of,now).toMinutes();//相差的分鐘數
long toMillis = Duration.between(of,now).toMillis();//相差毫秒數
long toNanos = Duration.between(of,now).toNanos();//相差的納秒數
System.out.println("toDays:"+ toDays); // 輸出 toDays:365
System.out.println("toHours:"+ toHours); // 輸出 toHours:8778
System.out.println("toMinutes:"+ toMinutes); // 輸出 toMinutes:526732
System.out.println("toMillis:"+ toMillis); // 輸出 toMillis:31603973840
System.out.println("toNanos:"+ toNanos); // 輸出 toNanos:31603973840000000
}

輸出結果:

圖片

改變當前時間的年月日時分秒

@Test
public void test() {
LocalDateTime now = LocalDateTime.now(); // 當前時間
LocalDateTime withYear = now.withYear(2060); // 改變當前年份(變成2060年)
LocalDateTime withMonth = now.withMonth(12); // 改變當前月份(變成12月份)
LocalDateTime withDayOfMonth = now.withDayOfMonth(28); //改變當前天數(變成28日)
LocalDateTime withHour = now.withHour(23); // 改變當前小時數(變成23時)
LocalDateTime withMinute = now.withMinute(30); // 改變當前分鐘(變成30分鐘)
LocalDateTime withSecond = now.withSecond(23); // 改變當前小時數(變成23時)
LocalDateTime withDayOfYear = now.withDayOfYear(60); // 從一月一號開始加上60天
System.out.println(now);
System.out.println("withYear:"+ withYear);
System.out.println("withMonth:"+ withMonth);
System.out.println("withDayOfMonth:"+ withDayOfMonth);
System.out.println("withHour:"+ withHour);
System.out.println("withMinute:"+ withMinute);
System.out.println("withSecond:"+ withSecond);
System.out.println("withDayOfYear:"+ withDayOfYear);
}

輸出結果:

圖片

自定義輸出的格式

@Test
public void test() {
// 自定義格式化:
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
DateTimeFormatter dtf1 = DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm:ss");
System.out.println("自定義格式yyyy/MM/dd HH:mm:ss :"+dtf.format(LocalDateTime.now()));
System.out.println("自定義格式yyyy.MM.dd HH:mm:ss :"+dtf1.format(LocalDateTime.now()));

// 用自定義格式解析:
LocalDateTime dt2 = LocalDateTime.parse("2020/10/20 15:16:17", dtf);
System.out.println("格式解析:"+dt2);
}

輸出結果:

圖片

LocalDateTime的with()方法

@Test
public void test() {
// 本月第一天0:00時刻:
LocalDateTime firstDay = LocalDate.now().withDayOfMonth(1).atStartOfDay();
// 本月最后1天:
LocalDate lastDay = LocalDate.now().with(TemporalAdjusters.lastDayOfMonth());
// 下月第1天:
LocalDate nextMonthFirstDay = LocalDate.now().with(TemporalAdjusters.firstDayOfNextMonth());
// 本月第1個周一:
LocalDate firstWeekday = LocalDate.now().with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));
}

兩個日期前后的比較與判斷

@Test
public void test() {
//判斷兩個時間點的前后
LocalDateTime now = LocalDateTime.now();
LocalDateTime target = LocalDateTime.of(2022, 2, 22, 22, 22, 22);
boolean isBefore = now.isBefore(target);
System.out.println("now:"+now);
System.out.println("target:"+target);
System.out.println("isBefore:"+isBefore);
System.out.println(LocalDate.now().isBefore(LocalDate.of(2022, 2, 22)));
System.out.println(LocalTime.now().isAfter(LocalTime.parse("08:15:00")));
}

輸出結果:

圖片

結束語

LocalDateTime獲取時間以及計算都非常方便,而且是線程安全的,建議使用LocalDateTime。

責任編輯:武曉燕 來源: Java技術指北
相關推薦

2023-12-21 08:02:21

CPUJava8列表

2024-09-26 07:27:27

2023-03-31 13:01:31

PythonCelery驗證

2024-04-12 12:19:08

語言模型AI

2021-10-20 08:49:30

Vuexvue.js狀態管理模式

2025-06-04 03:21:00

RAGRetrievalGeneratio

2022-03-24 08:51:48

Redis互聯網NoSQL

2022-05-05 16:47:24

Docker網絡空間容器

2020-05-15 16:37:13

PowerBI數據分析

2023-07-04 08:56:07

指針類型Golang

2023-05-31 13:32:08

Javalambda函數

2024-07-02 09:10:36

Nginx配置主機

2021-03-22 10:05:59

netstat命令Linux

2023-09-15 12:00:01

API應用程序接口

2023-09-08 08:20:46

ThreadLoca多線程工具

2023-10-10 10:43:19

JavaJDK1.8

2021-09-07 09:46:40

JavaScriptGenerator函數

2020-02-21 20:10:13

搞懂事務隔離級別

2021-12-29 17:38:17

JavaScripttypeof前端

2024-11-19 13:20:55

點贊
收藏

51CTO技術棧公眾號

国产精品99久久久久久久vr| 亚洲视频专区在线| 久草免费福利在线| 老色鬼久久亚洲一区二区| 国产精品久久久久久久久久久新郎 | 精品999视频| 久久精品日产第一区二区三区高清版| 黄色网络在线观看| 精品在线亚洲视频| 亚洲成人自拍视频| 视频一区中文字幕| 女人一区二区三区| 国产精品嫩草99av在线| 亚洲一区二区中文| 亚洲电影影音先锋| 国产一区二区在线免费| 日韩片欧美片| 91精品久久久久久久久久久| 精品国产一区二区三区四区| 国产成人综合久久| 亚洲资源网站| 日本一区二区三区在线播放| 国产亚洲成av人片在线观黄桃| 色综合天天狠天天透天天伊人 | 国产成人影院| 国产大片精品免费永久看nba| 欧美韩一区二区| 国产suv精品一区二区三区88区| 国产精品一在线观看| 国产日韩欧美在线看| 欧美精选一区| 日韩一本精品| 国产小视频免费在线网址| 日韩欧美国产成人一区二区| 探花国产精品| 中文字幕欧美三区| 久久久精品麻豆| 精品国产髙清在线看国产毛片 | 一区二区成人网| 亚洲丝袜美腿综合| 尤物视频在线观看| 欧美精品vⅰdeose4hd| 大桥未久在线视频| 精品国产一区av| 综合伊思人在钱三区| 成人写真福利网| 国产日韩一区二区三区在线播放| 亚洲不卡1区| 久久久久久久久一| h短视频大全在线观看| 精品动漫一区二区三区| 天堂中文а√在线| 在线观看久久av| 国产一区二区三区四区| 福利视频久久| 丁香亚洲综合激情啪啪综合| 激情内射人妻1区2区3区 | 国产精品欧美日韩一区| 亚洲一区二区三区四区在线播放| 美国三级日本三级久久99| 青青视频在线播放| 在线视频一区二区三| 色戒汤唯在线| 国产不卡一区二区在线播放| 日韩二区三区在线观看| 97影院理论午夜| 精品国产99国产精品| 日韩影视在线观看| 欧美亚洲免费高清在线观看 | 日韩午夜av一区| 日韩欧美另类中文字幕| 91在线精品观看| 国产精品一区二区x88av| 好男人看片在线观看免费观看国语| 91精品婷婷国产综合久久性色 | 日本高清好狼色视频| 亚洲高清久久网| 国产一区二区三区站长工具| 亚洲欧美在线网| 一区二区三区国产精品| 黄色在线免费观看网站| 国产欧美精品xxxx另类| k8久久久一区二区三区| 91精品国产综合久久久久久豆腐| yw.139尤物在线精品视频| 樱桃成人精品视频在线播放| 91香蕉视频污版| 日韩精品极品毛片系列视频| 在线成人激情| 美女无遮挡网站| 国产亚洲一区二区精品| 亚洲第一精品影视| 日韩黄色动漫| 久久精品视频亚洲| 日韩电影免费一区| 你懂的在线看| 日本精品免费观看| 97久久精品人人做人人爽| 欧美另类tv| 国产精品手机视频| 亚洲激情六月丁香| 精品国产一级| 日本三级中文字幕在线观看| 欧美图区在线视频| 久久在线免费| 丁香婷婷激情| 久久精品一偷一偷国产| 国产精品99久久久久久久vr| 国产天堂在线播放视频| 久久久综合香蕉尹人综合网| 黑人精品xxx一区| 国产亚洲一区二区三区不卡| 色婷婷成人在线| 久久夜色精品国产亚洲aⅴ| 精品无码三级在线观看视频 | 欧美一区在线观看视频| 激情视频小说图片| 日韩三级在线免费观看| 亚洲国产欧美国产综合一区| 97碰碰碰免费色视频| 97精品伊人久久久大香线蕉| 亚洲成人在线免费| 中文在线天堂库| 91精品国产99| 国产一区二区不卡视频在线观看| 亚洲free性xxxx护士hd| 亚洲天堂av免费在线观看| 国产日韩换脸av一区在线观看| 99精品国产热久久91蜜凸| 欧美第一在线视频| 在线观看v片| 激情开心成人网| 北条麻妃在线视频观看| 日韩免费中文专区| 日韩一区免费观看| 91大神在线播放精品| www国产成人| 黄色在线观看视频网站| 日本久久亚洲电影| 国产精品伦理在线| 日韩电影在线免费看| 一区二区亚洲精品| 黄色综合网站| 粉嫩虎白女毛片人体| 欧美整片在线观看| 99久久99久久| 免费一级淫片aaa片毛片a级| xx免费视频| 亚洲成人观看| 男插女视频久久久| 久久av影院| 91蜜臀精品国产自偷在线| 久久黄色网页| 久久久久国产精品人| 欧美色图在线视频| 欧美一区二区三区白人| 超碰精品一区二区三区乱码 | 中文字幕成人精品久久不卡| 欧美大片在线观看一区| 在线免费观看成人短视频| 午夜精品福利一区二区三区蜜桃| 18成人在线观看| 亚洲天堂av老司机| 欧美主播一区二区三区美女| 91久久线看在观草草青青| 色天使久久综合网天天| 色综合久久中文综合久久97| 在线影视一区二区三区| 久久日韩粉嫩一区二区三区| 91香蕉视频黄| 亚洲一区二区三区高清不卡| 91久久电影| 91久色porny| 伊人婷婷欧美激情| 亚洲精品中文字幕在线观看| 国产在线乱码一区二区三区| 久久久久毛片免费观看| 中文字幕av在线| 日本特黄a级高清免费大片| 国产在线视频一区| 亚洲精品国产精品国自产在线| 在线观看日韩毛片| 欧美日韩成人在线一区| 神马久久桃色视频| 久久天堂国产精品| 在线看黄的网站| 欧美成人蜜桃| 国产精品永久免费| 波多野结衣天堂| 三级资源在线| 麻豆亚洲精品| 亚洲精品日韩一| 中文字幕日韩av| 色999五月色| aⅴ在线视频男人的天堂 | 国精一区二区三区| 巨人精品**| 欧美日韩亚洲一区在线观看| 先锋影音国产一区| 亚洲精品视频在线看|