LocalDateTime - Java处理日期和时间
生活随笔
收集整理的這篇文章主要介紹了
LocalDateTime - Java处理日期和时间
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
java.time包提供了新的日期和時間的API,新的API主要包括:1. LocalDate/LocalTime/LocalDateTime2. ZoneDateTime/ZoneId3. Instant4. Formatter我們看java.time提供的1. LocalDate: 本地的日期2. LocalTime: 本地的時間3. LocalDateTime: 本地的日+時間java.time提供的新的API主要是有這幾個特點:1. 首先嚴格的區分日期和時間2. 其次所有的類稱為不變類,這一點和String非常的類似3. 新的API的Month是從1到12,對應的是1月到12月,4. Week的范圍是從1到7,對應的是周一到周日,這樣我們就不需要考慮加1和減1的問題了我們可以通過LocalDate.now()獲取當前的日期,通過LocalTime.now()獲取當前的時間,通過LocalDateTime.now()獲取當前的日期和時間,當我們打印LocalDate和LocalTime,或者是LocalDateTime的時候,它是嚴格的按照ISO-8601的格式打印的我們還可以通過指定日期和時間,可以構造LocalDate,LocalTime,LocalDateTime,方法通過調用of方法,傳入年月日,或者是時分秒,得到LocalDate和LocalTime,傳入年月日和時分秒,我們可以構造出一個DateTime,或者利用一個LocalDate,和LocalTime對象,構造出一個新的LocalDateTime
新的API同樣也提供了DateTimeFormatter對象,他和舊的SimpleDateFormat對象不一樣的是,它是一個不可變類,我們通過ofPattern這個方法,傳入指定的格式化的字符串,可以得到DateFormatter這個對象,我們同樣調用format和parse方法,對日期進行格式化,或者從字符串解析出日期,默認情況下,LocalDate,LocalTime,LocalDateTime,是按照ISO標準格式進行解析的,因此,我們采用的是標準的格式化日期,或者是時間,我們就可以通過LocalDate,LocalTime,LocalDateTime,我們已經列出了幾種標準的日期,時間,已經日期和時間的字符串,新的API還有一個重大的更新,就是他增加了日期和時間的運算,我們通過LocalDate的plusDays,傳入變量5,就可以在先有的基礎上加上5天,注意LocalDate是一個不變類,所以plusDays返回的是一個新的LocalDate對象,類似的我們用MinusHours減掉2個小時,我們可以通過plusWeeks增加幾周我們還可以對日期和時間進行調整,例如我們獲取到當前的日期,然后我們調用withDayOfMonth,傳入1,就可以把日期調整到日期的第一天,我們用withSecond(0).withNano(0)可以把秒和納秒調整為0,我們還可以通過一個TemporalAdjusters.lastDaysMonth(),我們就可以計算出本月的最后一天,我們可以通過TemporalAdjusters.firstInMonth傳入DayOfWeek,例如SUNDAY,我們就計算出了本月的第一個周日新的API還提供了判斷日期的先后,我們通過兩個日期可以通過isBefore,或者isAfter,來判斷他們的先后順序,我們通過equals也可以判斷兩個日期是否相等我們還可以計算日期的Period,我們有一個utils方法可以得到一個Period對象,表示某一天到指定的另一天,他之間相差多少日期,例如我們計算2016年1月20號到2050年1月1號,我們可以得到一個Period對象,我們打印這個對象,可以打印P33Y1M12D,表示這個日期相差33年,1個月12天我們通過Priod.getYears(),getMonths(),getDays(),可以分別取出對應的整數
我們要注意,LocalDateTime是無法與Long進行轉換的:1. 這是因為從設計上LocalDateTime他是沒有時區的概念,因為LocalDateTime他是沒有時區,我們也無法確定某一個時刻2. ZoneDateTime他是有時區的,所以他可以與Long交換最后我們總結一下LocalDate,LocalTime,LocalDateTime:1. 他們都是不變類2. 默認按照ISO-8601標準格式化和解析3. 我們使用DateTimeFormatter自定義格式化和解析4. 我們可以通過plusDays和minusHours等方法對日期和時間進行加減,返回新的對象5. 我們使用withDayOfMonth/with等方法調整日期和時間,返回新的對象6. 我們還可以使用isBefore/isAfter/equals判斷日期和時間的先后
?
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的LocalDateTime - Java处理日期和时间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Date - Java处理日期和时间
- 下一篇: mysql的事物隔离级别