Java8-LocalDateTime極簡時間日期操做整理

簡述

時間日期處理是平時工做中使用很是頻繁的邏輯,Java8中提供的新的時間類LocalDateTime和LocalDate,使日期處理能夠更簡單。java

友情提醒下,業務開發中最好默認使用LocalDateTime,由於LocalDateTime能夠很方便的轉換爲LocalDate,可是LocalDate是不能夠轉爲LocalDateTime的,會沒有時分秒的數據!!!函數

本篇文章整理了經常使用的日期處理獲取方式,並作簡要說明。學習

能寫一行的,就不寫兩行!文章會持續更新。code

實例

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;
    }

以上內容屬我的學習總結,若有不當之處,歡迎在評論中指正orm

相關文章
相關標籤/搜索