Java核心之常見時間日期
Java日期處理類Date詳解
- 時間的基礎知識
- 時區:整個地球分為二十四時區,每個時區都有自己的本地時間,
- 為了統一起見,使用一個統一的時間,稱為全球標準時間(UTC,Universal Time Coordinated),
- TC與格林尼治平均時(GMT,Greenwich Mean Time,也翻譯成:格林威治標準時間)差不多一樣
- CST(北京時間),北京時間,China standard Time,中國標準時間,在時區劃分上,屬東八區,比協調世界時早8小時,記為UTC+8,
- 時間戳:自1970年1月1日(08:00:00GMT)至當前時間的總秒數,它也被稱為Unix時間戳(unix Timestamp),廣泛的運用在知識產權保護、合同簽字、金融帳務、電子報價投標、股票交易等方面
- 格式多種:2050-10-3110:11:11、2050/10/3110/10:10年、月、日、周幾等
- 背景:程式代碼中怎么表示時間呢?我需要獲取當前時間怎么辦
- ava.util包提供了Date類來封裝當前的日期和時間
- 建構式
//當前時間
Date()
//從1970年1月1日起的毫秒數作為引數
Date(long millisec)
- 常見方法
//回傳自1970年1月1日00:00:00GMT以來此Date物件表示的毫秒數,
long getTime()
//呼叫此方法的Date物件在指定日期之后回傳true,否則回傳false,
boolean after(Date date)
//呼叫此方法的Date物件在指定日期之前回傳true,否則回傳false,
boolean before(Date date)
新版JDK8之時間日期處理類
- Java8通過發布新的Date-Time API(JSR310)來進一步加強對日期與時間的處理
- 新增了很多常見的api,如日期/時間的比較,加減,格式化等
- 包所在位置 java.time
- 核心類
LocalDate:不包含具體時間的日期,
LocalTime:不含日期的時間,
LocalDateTime:包含了日期及時間,
- LocalDate常用API
LocalDate today=LocalDate.now();
system.out.print1n("今天日期:"+today);
//獲取年,月,日,周幾
system.out.print1n("現在是哪年:"+today.getYear());
system.out.print1n("現在是哪月:"+today.getMonth());
System.out.print1n("現在是哪月(數字):"+today.getMonthValue());
System.out.print1n("現在是幾號:"+today.getDayofMonth());
system.out.print1n("現在是周幾:"+today.getDayofweek());
//加減年份,加后回傳的物件才是修改后的,舊的依舊是舊的LocalDate changeDate=today.plusYears(1);
system.out.print1n("加后是哪年:"+changeDate.getYear());
System.out.print1n("舊的是哪年:"+today.getYear());
//日期比較
system.out.print1n("isafter:"+changeDate.isAfter(today));
//getYear()int 獲取當前日期的年份
//getMonth()Month獲取當前日期的月份物件
//getMonthValue()int 獲取當前日期是第幾月
//getDayofweek()Dayofweek 表示該物件表示的日期是星期幾
//getDayofMonth()int 表示該物件表示的日期是這個月第幾天
//getDayofyear()int 表示該物件表示的日期是今年第幾天
//withyear(int year)LocalDate 修改當前物件的年份
//withMonth(int month)LocalDate修改當前物件的月份
//withpayofMonth(int dayofMonth)LocalDate 修改當前物件在當月的日期
//plusYears(long yearsToAdd)Localpate 當前物件增加指定的年份數
//plusMonths(1ong monthsToAdd)LocalDate 當前物件增加指定的月份數
//plusweeks(1ong weeksToAdd)LocalDate 當前物件增加指定的周數
//plusDays(1ong daysToAdd)LocalDate 當前物件增加指定的天數
//minusYears(long yearsTosubtract)LocalDate 當前物件減去指定的年數
//minusMonths(1ong months ToSubtract)LocalDate當前物件減去注定的月數
//minusWeeks(long weeksTosubtract)LocalDate 當前物件減去指定的周數
//minusDays(1ong daysTosubtract)LocalDate當前物件減去指定的天數
//compareTo(ChronoLocalDate other)int 比較當前物件和other物件在時間上的大小,回傳值如果為正,則當前物件時間較晚
//isBefore(ChronoLocalDate other)boolean比較當前物件日期是否在other物件日期之前
//isAfter(ChronoLocalDate other)boolean 比較當前物件日期是否在other物件日期之后
//isEqual(ChronoLocalDate other)boolean 比較兩個日期物件是否相等
新版JDK8之時間日期格式化
- 為什么要時間日期做格式化
- 程式列印,或者網頁顯示時間日期格式,用戶有不同的需求,則需要根據一定的規則進行格式化
- 常用的占位符
- y四位數年份
- M月d日
- h時在
- m分
- S毫秒
- JDK8之后:引入執行緒安全的日期與時
LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt);
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd
HH:mm:ss");
String ldtStr = dtf.format(ldt);
System.out.println(ldtStr);
- 獲取指定的日期時間物件LocalDate Time ldt=LocalDate Time.of(2020,11,11,8,20,30);System.out.println(ldt);
- 計算日期時間差 java.time.Duration
LocalDateTime today = LocalDateTime.now();
System.out.println(today);
LocalDateTime changeDate = LocalDateTime.of(2020,10,1,10,40,30);
System.out.println(changeDate);
Duration duration = Duration.between( today,changeDate);//第?二個引數減第?一
個引數
System.out.println(duration.toDays());//兩個時間差的天數
System.out.println(duration.toHours());//兩個時間差的小時數
System.out.println(duration.toMinutes());//兩個時間差的分鐘數
System.out.println(duration.toMillis());//兩個時間差的毫秒數
System.out.println(duration.toNanos());//兩個時間差的納秒數
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/260038.html
標籤:java
上一篇:設計模式-模板方法模式
