【问题标题】:A bug in week of year in Java Calendar? [duplicate]Java 日历中一年中的一周中的错误? [复制]
【发布时间】:2016-01-05 09:24:56
【问题描述】:

以下代码计算特定日期的工作周数。

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar cal = new GregorianCalendar();
cal.setTime(df.parse("2015-12-27 08:00:00"));
System.err.printf("%d.%02d\n", cal.getWeekYear(), cal.get(Calendar.WEEK_OF_YEAR));

目前打印的是 2016.01。

据我了解工作周数规范,2016.01 是 2016 年的第一周有 4 天,但 12 月 27 日不可能属于这样的一周。

有没有办法在 Java 7 中做到这一点,假设周从星期一开始,它可以在任何一年都有效?

【问题讨论】:

  • 世界各地的周规不同,您在哪个地区?
  • cal.getFirstDayOfWeek()cal.getMinimalDaysInFirstWeek() 会为您返回什么?
  • @JonSkeet,它被设置为 1,我应该设置为 4。

标签: java date calendar


【解决方案1】:

尝试将星期一设置为一周的第一天。

cal.setFirstDayOfWeek(Calendar.MONDAY);

【讨论】:

  • 还有 cal.setMinimalDaysInFirstWeek(4);
猜你喜欢
  • 2019-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-29
  • 1970-01-01
  • 1970-01-01
  • 2021-03-25
相关资源
最近更新 更多