一、代码

  1. public static void main(String[] args) {
  2. Calendar cal = new GregorianCalendar();
  3. // 每周第一天(周一)
  4. cal.setFirstDayOfWeek(Calendar.MONDAY);
  5. cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
  6. Date monday = cal.getTime();
  7. String format = new SimpleDateFormat("yyyy-MM-dd").format(monday);
  8. System.out.println(format + " 00:00:00");
  9. // 每周第五天(周五)
  10. cal.setFirstDayOfWeek(Calendar.MONDAY);
  11. cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek() + 4);
  12. Date friday = cal.getTime();
  13. format = new SimpleDateFormat("yyyy-MM-dd").format(friday);
  14. System.out.println(format + " 00:00:00");
  15. // 每月第一天
  16. cal.set(Calendar.DAY_OF_MONTH, 1);
  17. Date dayMonthStart = cal.getTime();
  18. format = new SimpleDateFormat("yyyy-MM-dd").format(dayMonthStart);
  19. System.out.println(format + " 00:00:00");
  20. }

二、API

  1. // 给定一周的第一天是周几(美国、非洲周天;法国、中国周一)
  2. setFirstDayOfWeek(int value);
  3. // 设置Calendar时间(年、月、日都可通过指定值设置)
  4. set(int field, int value)

三、补充

Calendar cal = new GregorianCalendar(); //直接创建
Calendar cal = Calendar.getInstance(); // 工厂方法
Calendar类实现了公历⽇历,GregorianCalendar是Calendar类的⼀个具体实现。Calendar 的
getInstance()⽅法返回⼀个默认⽤当前的语⾔环境和时区初始化的GregorianCalendar对象。


参考资料: Calendar 获取本周周一、周五时间,以及获取当月第一天