当我们知道本周的某个日期时,如何获得一周的第一天?
我知道当前月份,当前年份和当前星期几。 那么,有没有办法知道当周的第一天。
谢谢。
答案 0 :(得分:3)
你好,如果你需要获得当周“星期一”的第一天
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, Calendar.MONDAY-calendar.get(Calendar.DAY_OF_WEEK));
Log.w(TAG, "first day of week" + calendar.getTime());
2如果你需要一周的第一天20-12-2016
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, 20);
calendar.set(Calendar.MONTH,Calendar.DECEMBER);
calendar.set(Calendar.YEAR,2016);
calendar.add(Calendar.DAY_OF_MONTH,Calendar.MONDAY - calendar.get(Calendar.DAY_OF_WEEK));
Log.w(TAG,"first day of week:"+calendar.getTime());
我希望这会对你有所帮助
答案 1 :(得分:1)
试试这个:
//获取今天和明确的时间
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0); // ! clear would not reset the hour of day !
cal.clear(Calendar.MINUTE);
cal.clear(Calendar.SECOND);
cal.clear(Calendar.MILLISECOND);
//以毫秒为单位开始本周
cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
System.out.println("Start of this week: " + cal.getTime());
System.out.println("... in milliseconds: " + cal.getTimeInMillis());
参考:How to get the first day of the current week and month?
希望这可以帮到你!
答案 2 :(得分:1)
你好,如果你需要获得当周“星期一”的第一天
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, Calendar.MONDAY-calendar.get(Calendar.DAY_OF_WEEK));
Log.w(TAG, "first day of week" + calendar.getTime());
2如果你需要一周的第一天20-12-2016
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, 20);
calendar.set(Calendar.MONTH,Calendar.DECEMBER);
calendar.set(Calendar.YEAR,2016);
calendar.add(Calendar.DAY_OF_MONTH,Calendar.MONDAY - calendar.get(Calendar.DAY_OF_WEEK));
Log.w(TAG,"first day of week:"+calendar.getTime());
我希望这会对你有所帮助
答案 3 :(得分:0)
现代方法使用java.time类而不是麻烦的旧Calendar
& Date
课程。
LocalDate.of( 2017 , Month.MARCH , 23 )
.with( TemporalAdjusters.previousOrSame( DayOfWeek.MONDAY ) )
LocalDate
LocalDate
类表示没有时间且没有时区的仅限日期的值。
LocalDate someDate = LocalDate.of( 2017 , Month.MARCH , 23 ) ;
TemporalAdjuster
要获得一周的第一天,(a)决定一周的第一天是什么时候,(b)使用TemporalAdjuster
中定义的TemporalAdjusters
实施方式来确定特定的DayOfWeek
枚举对象。
LocalDate ld = someDate.with( TemporalAdjusters.previousOrSame( DayOfWeek.MONDAY ) ) ;
java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.Date
,Calendar
和& SimpleDateFormat
现在位于Joda-Time的maintenance mode项目建议迁移到java.time类。
要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310。
从哪里获取java.time类?