【发布时间】:2025-11-28 05:40:01
【问题描述】:
当我们知道一周中的某个日期时,如何获得一周的第一天?
我知道当前月份、当前年份和当前星期几。 那么,有没有办法知道本周的第一天。
谢谢。
【问题讨论】:
-
你在谷歌搜索过..??你试过什么。?
当我们知道一周中的某个日期时,如何获得一周的第一天?
我知道当前月份、当前年份和当前星期几。 那么,有没有办法知道本周的第一天。
谢谢。
【问题讨论】:
您好,如果您需要获取当前一周的第一天“星期一”
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());
希望对你有帮助
【讨论】:
试试这个:
// 获取今天并清除一天中的时间
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?
希望对您有所帮助!
【讨论】:
您好,如果您需要获取当前一周的第一天“星期一”
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());
希望对你有帮助
【讨论】:
现代方法使用 java.time 类,而不是麻烦的旧 Calendar 和 Date 类。
LocalDate.of( 2017 , Month.MARCH , 23 )
.with( TemporalAdjusters.previousOrSame( DayOfWeek.MONDAY ) )
LocalDateLocalDate 类表示没有时间和时区的仅日期值。
LocalDate someDate = LocalDate.of( 2017 , Month.MARCH , 23 ) ;
TemporalAdjuster要获得一周的第一天,(a) 决定一周的第一天是哪一天,(b) 使用在 TemporalAdjusters 中定义的 TemporalAdjuster 实现来获取特定 @987654351 的日期@枚举对象。
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 类?
【讨论】: