JDK8特性之LocalDateTime
JDK1.8除了新增了lambda表示式、stream流之外,它還新增了全新的日期時間API。
在JDK1.8之前,Java處理日期、日曆和時間的方式一直為社群所詬病,將 java.util.Date設定為可變型別,以及SimpleDateFormat的非執行緒安全使其應用非常受限。因此推出了java.time包,該包下的所有類都是不可變型別而且執行緒安全。
- LocalDate:本地日期,不包含具體時間, 格式 yyyy-MM-dd。
- LocalTime:本地時間,不包含日期. 格式 yyyy-MM-dd HH:mm:ss.SSS 。
- LocalDateTime:組合了日期和時間,但不包含時差和時區資訊。
LocalDateTime程式碼示例:
LocalDate\LocalTime\LocalDateTime的使用
public class LocalDateTimeDemo {
public static void main(String[] args) {
//本地日期,不包括時分秒
LocalDate nowDate = LocalDate.now();
//本地日期,包括時分秒
LocalDateTime nowDateTime = LocalDateTime.now();
System.out.println("當前是:" + nowDate);
System.out.println("當前是:" + nowDateTime);
//當前是:2020-10-12
//當前是:2020-10-12T14:03:12.829
System.out.println("當前年:" + nowDateTime.getYear());
System.out.println("當前年份天數:" + nowDateTime.getDayOfYear());
System.out.println("當前月:" + nowDateTime.getMonthValue());
System.out.println("當前時:" + nowDateTime.getHour());
System.out.println("當前分:" + nowDateTime.getMinute());
System.out.println("當前時間:" + nowDateTime.toString());
//當前年:2020
//當前年份天數:286
//當前月:10
//當前時:14
//當前分:7
//當前時間:2020-10-12T14:07:53.685
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
LocalDateTime ldt = LocalDateTime.now();
System.out.println("格式化時間:" + ldt.format(formatter));
//格式化時間:2020-10-12 14:10:51.062
LocalDate ld1 = LocalDate.parse("2017-11-17");
LocalDate ld2 = LocalDate.parse("2018-01-05");
Period period = Period.between(ld1, ld2);
System.out.println("相差年:" + period.getYears() + "相差月:" + period.getMonths() + "相差天:" + period.getDays());
System.out.println("相差月份:" + ChronoUnit.MONTHS.between(ld1,ld2));
System.out.println("相差總天數:" + ChronoUnit.DAYS.between(ld1,ld2));
//相差年:0相差月:1相差天:19
//相差月份:1
//相差總天數:49
LocalDateTime ldt1 = LocalDateTime.now();
LocalDateTime ldt2 = ldt1.plusMinutes(10);
System.out.println("當前時間是否大於:" + ldt1.isAfter(ldt2));
System.out.println("當前時間是否小於:" + ldt1.isAfter(ldt2));
//當前時間是否大於:false
//當前時間是否小於:false
Clock clock = Clock.systemUTC();
System.out.println("當前時間戳:" + clock.millis());
Clock clock2 = Clock.system(ZoneId.of("Asia/Shanghai"));
System.out.println("亞洲上海此時的時間戳:" + clock2.millis());
Clock clock3 = Clock.system(ZoneId.of("America/New_York"));
System.out.println("美洲紐約此時的時間戳:" + clock3.millis());
//當前時間戳:1602483959576
//亞洲上海此時的時間戳:1602483959576
//美洲紐約此時的時間戳:1602483959580
}
}
在此記錄jdk1.8中時間的用法,後續加強練習。
相關文章
- JDK8新特性之stream()JDK
- JDK8新特性之Stream流JDK
- JDK8新特性之函式式介面JDK函式
- JDK8新特性JDK
- JDK8的新特性JDK
- JDK8新特性詳解JDK
- JDK8新特性詳解(一)JDK
- JDK8新特性(4)—— stream 流JDK
- JDK8到底有啥特性JDK
- JDK8新特性詳解(二)JDK
- JDK8新特性學習總結JDK
- JDK8 新特性學習筆記JDK筆記
- JDK8新特性-你瞭解多少JDK
- LocalDateTime日期轉換LDA
- JDK8到JDK17有哪些吸引人的新特性?JDK
- LocalDateTime的方法總結LDA
- jdk8之stream求和,保留兩位小數JDK
- jdk8JDK
- LocalDateTime工具類(常用轉換)LDA
- 探索jdk8之ConcurrentHashMap 的實現機制JDKHashMap
- JDK15就要來了,你卻還不知道JDK8的新特性!JDK
- 04 Springboot 格式化LocalDateTimeSpring BootLDA
- Innodb特性之change buffer
- JAVA特性 之 反射(Reflection)Java反射
- groovy之範圍特性
- C++ 11 新特性之容器相關特性C++
- JDK8之後,在java語言這條路怎麼走?JDKJava
- 專案中常用的JDK8之Stream流,長期補充JDK
- JDK8的排序大法!!JDK排序
- Jdk8的安裝JDK
- centos安裝jdk8CentOSJDK
- 如何將Java 8 Calendar轉換為 LocalDateTime?JavaLDA
- LocalDateTime替代Date操作處理日期時間LDA
- Oracle 12c新特性之Sequence的Session特性OracleSession
- Java高階特性之集合Java
- PHP 特性之 trait (一)PHPAI
- 【MySQL】5.7新特性之四MySql
- 【MySQL】5.7新特性之五MySql