扫码关注官方订阅号
比如给一个时间 2016-09-06(周二)就能得到2016-09-04(2016-09-06这一周的周日)
学习是最好的投资!
public static String getFirstDayOfWeek(String date){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); try { cal.setTime(sdf.parse(date)); // Calendar默认周日为第一天, 所以设置为1 cal.set(Calendar.DAY_OF_WEEK, 1); // 如果要返回00点0分0秒 //cal.set(Calendar.HOUR_OF_DAY, 0); //cal.set(Calendar.MINUTE, 0); //cal.set(Calendar.SECOND, 0); //cal.set(Calendar.MILLISECOND, 0); } catch (ParseException e) { } return sdf.format(cal.getTime()); }
建议用Java8的新时间API,操作起来比较方便
LocalDate localDate = LocalDate.parse("2016-09-15"); LocalDate nextSunday = localDate.with(TemporalAdjusters.next(DayOfWeek.SUNDAY));
就这么简单...没有以前老Date API那么麻烦,可能还要try catch,或者判断很多种情况,很多情况交给JDK自己去处理吧,现在已经封装好了方法
Date API
try catch
对于这种封装好了的方法,可以说Java8作为Java最新版本,已经把Java以前的命令式风格融入了声明式风格,代码读取来也更易读了,localDate.with就是新时间API定义的时间抽象类Temporal的with方法,参数就是一个调整TemporalAdjuster接口,代表了当前对象可以根据这个具体的调整器来调整当前对象,TemporalAdjusters.next就是生成了一个调整器,调整星期的...表示下一个,参数传的DayOfWeek.SUNDAY,表示是周日
localDate.with
Temporal
with
TemporalAdjusters.next
DayOfWeek.SUNDAY
因此完整连起来读localDate.with(TemporalAdjusters.next(DayOfWeek.SUNDAY));这段代码就真的很容易了,所见即所得,把当前时间localDate按照调整器(下一个周日)进行调整并返回
localDate.with(TemporalAdjusters.next(DayOfWeek.SUNDAY));
localDate
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
建议用Java8的新时间API,操作起来比较方便
就这么简单...没有以前老
Date API那么麻烦,可能还要try catch,或者判断很多种情况,很多情况交给JDK自己去处理吧,现在已经封装好了方法对于这种封装好了的方法,可以说Java8作为Java最新版本,已经把Java以前的命令式风格融入了声明式风格,代码读取来也更易读了,
localDate.with就是新时间API定义的时间抽象类Temporal的with方法,参数就是一个调整TemporalAdjuster接口,代表了当前对象可以根据这个具体的调整器来调整当前对象,TemporalAdjusters.next就是生成了一个调整器,调整星期的...表示下一个,参数传的DayOfWeek.SUNDAY,表示是周日因此完整连起来读
localDate.with(TemporalAdjusters.next(DayOfWeek.SUNDAY));这段代码就真的很容易了,所见即所得,把当前时间localDate按照调整器(下一个周日)进行调整并返回