Heim  >  Fragen und Antworten  >  Hauptteil

So ermitteln Sie die Zeit des Montags und Sonntags der letzten Woche mithilfe von LocalDate in JAVA

Wie im Titel steht, ist heute der 21.06.2017. Wie erhalte ich den Montag der letzten Woche, den 12.06.2017?

扔个三星炸死你扔个三星炸死你2675 Tage vor1011

Antworte allen(4)Ich werde antworten

  • 为情所困

    为情所困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);

    Antwort
    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这个私生子是不是更简洁点...简直爽~~~嘎嘎嘎

    Antwort
    0
  • 我想大声告诉你

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

    LocalDate.now().minusWeeks(1).minusDays(LocalDate.now().getDayOfWeek().getValue()-1)
    我现在是这样写的,不知道还有没有更好的写法

    Antwort
    0
  • 曾经蜡笔没有小新

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

        public static void getLastMonday(){
            LocalDate local = LocalDate.now();//获取当前时间
            DayOfWeek dayOfWeek = local.getDayOfWeek();//获取今天是周几
            LocalDate lastMonday = local.minusDays(7+dayOfWeek.getValue()-1);//算出上周一
        }

    Antwort
    0
  • StornierenAntwort