Java8 LocalDateTime極簡時間日期操作小結
簡述
時間日期處理是平時工作中使用非常頻繁的邏輯,Java8中提供的新的時間類LocalDateTime
和LocalDate
,使日期處理可以更簡單。
友情提醒下,業務開發中最好預設使用LocalDateTime,因為LocalDateTime可以很方便的轉換為LocalDate,但是LocalDate
是不可以轉為LocalDateTime的,會沒有時分秒的資料!!!
本篇文章整理了常用的日期處理獲取方式,並做簡要說明。
能寫一行的,就不寫兩行!文章會持續更新。
例項
1.獲取當前年月日的字串
String ymd = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); DateTimeFormatter.ofPattern("yyyy-MM-dd"),修改獲取的日期格式
2.在當前日期上加減N天,N月,N年
獲取去年的日期,就是年份減1
LocalDate date = LocalDateTime.now().minusYears(1).toLocalDate();
獲取一年後的日期,就是年份加1
LocalDate date = LocalDateTime.now().plusYears(1).toLocalDate();
加的函式都是plus字首的
同理,還有minus天,周,月的函式,很方便
3.獲取上週的某天
獲取上週週一
LocalDate monday = LocalDate.now().minusWeeks(1).with(DayOfWeek.MONDAY);
DayOfWeek
是java.time中的星期的列舉,可通過列舉值獲取一週中的任一天
返回的仍是LocalDate
物件,方便進一步處理
4.當前時間是星期幾,這個月幾號,今年的第幾天
LocalDateTime dateTime = LocalDateTime.now(); System.out.println(dateTime.getDayOfWeek()); System.out.println(dateTime.getDayOfMonth()); System.out.println(dateTime.getDayOfYear());
5.獲取兩個日期中間的所有年份
public static List<Integer> getYearsBetweenTwoVar(LocalDate s,LocalDate e) { LocalDate tmp = s.plusYears(1); List<Integer> yearList = new ArrayList<>(); while (tmp.isBefore(e)) { yearList.add(tmp.getYear()); tmp = tmp.plusYears(1); } return yearList; }
補充:java8 LocalDateTime 格式化
LocalDateTime格式化
LocalDateTime time=LocalDateTime.now();
System.out.println(time);
DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String strDate2 = dtf2.format(time);
System.out.println(strDate2);
LocalDate轉String ,String轉LocalDate
LocalDate data=LocalDate.now();
System.out.print(data);
DateTimeFormatter dtf3 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String strDate3 = dtf3.format(data);
System.out.println(strDate3);
strDate3=strDate3+" 04:00:00";
LocalDateTime time1=LocalDateTime.parse(strDate3,dtf2);
System.out.print(time1);
System.out.print(time.isAfter(time1));
總結
到此這篇關於Java8 LocalDateTime極簡時間日期操作整理的文章就介紹到這了,更多相關Java8 LocalDateTime 時間日期內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!