搜索

首页  >  问答  >  正文

JAVA 用LocalDate怎么获取上个礼拜的礼拜一和礼拜日的时间

如题,比如今天是2017.6.21 我怎么得到上个礼拜的礼拜一2017-06-12

扔个三星炸死你扔个三星炸死你2740 天前1064

全部回复(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
  • 取消回复