首頁  >  問答  >  主體

JAVA 用LocalDate怎麼取得上個禮拜的禮拜一和禮拜日的時間

如題,例如今天是2017.6.21 我怎麼得到上個禮拜的禮拜一2017-06-12

扔个三星炸死你扔个三星炸死你2675 天前1013

全部回覆(4)我來回復

  • 为情所困

    为情所困2017-06-23 09:15:25

    謝邀。

    我記得java的Date處理好像有什麼問題來著,具體我忘了。一般使用企業級的Time框架Joda-Time,舉個例子:

    //今天
    DateTime today = DateTime.now();
    //上周的今天
    DateTime sameDayLastWeek = today.minusWeeks(1);
    //上周的周一
    DateTime mondayLastWeek = sameDayLastWeek.withDayOfWeek(DateTimeConstants.MONDAY);
    //上周的周日
    DateTime sundayLastWeek = sameDayLastWeek.withDayOfWeek(DateTimeConstants.SUNDAY);

    回覆
    0
  • 阿神

    阿神2017-06-23 09:15:25

    說Java的Date處理有什麼問題的嘛,那是以前的java.util.Date, 現在的新包java.time的API處理時間也是非常方便,API都是參考了很多優秀的Time框架,例如Joda-Time,所以,要用還是用自家的API噻,哈哈,畢竟是親兒子

    LocalDate newLocalDate = LocalDate.of(2017, 6, 21).minusWeeks(1l)
                                                      .with(DayOfWeek.MONDAY);

    哈哈,是不是很簡潔...比Joda-Time這個私生子是不是更簡潔點...簡直爽~~~嘎嘎嘎

    回覆
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-23 09:15:25

    LocalDate.now().minusWeeks(1).minusDays(LocalDate.now().getDayOfWeek().getValue()-1)
    我現在是這樣寫的,不知道還有沒有更好的寫法

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-23 09:15:25

    雷雷

    回覆
    0
  • 取消回覆