Heim > Fragen und Antworten > Hauptteil
Wie im Titel steht, ist heute der 21.06.2017. Wie erhalte ich den Montag der letzten Woche, den 12.06.2017?
为情所困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);
阿神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
这个私生子是不是更简洁点...简直爽~~~嘎嘎嘎
我想大声告诉你2017-06-23 09:15:25
LocalDate.now().minusWeeks(1).minusDays(LocalDate.now().getDayOfWeek().getValue()-1)
我现在是这样写的,不知道还有没有更好的写法
曾经蜡笔没有小新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);//算出上周一
}