2

我实际上正在通过实用程序类日历。我发现自己很困惑,

方法

getFirstDayOfWeek() 
returns the first day of the week;
e.g., SUNDAY in the U.S., MONDAY in France.

getMinimalDaysInFirstWeek()
returns the minimal days required in the first week of the year. e.g., 
if the first week is defined as one that contains the first day of the
first month of a year, this method returns 1. If the minimal days required
must be a full week, this method returns 7.

我住在印度 (UTC+05:30) 钦奈、加尔各答、孟买、新德里。该时区不实行夏令时。

为了获得一年中的一周,我这样编码

Calendar calendar = Calendar.getInstance();
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));   // returns 45 

45 只有在 Java 处理时才有可能

WeekNumber   FromDate                       ToDate
Week 01      December 30, 2013              January 5, 2014  // December 30 is Monday
Week 45      November 3, 2014(Monday)       November 9, 2014

Java 需要最少几天才能变成一整周才能变成 7 天吗?因为我可以通过 setMinimalDaysInFirstWeek() 来改变它。又会有什么影响?

4

1 回答 1

2

它与一年中一周中的天数有关。除非您对周年感兴趣,否则它可能与您无关。默认情况下,我希望它是 4,因为这是正常的 ISO-8601 值。

我不确定这是否与“一周的第一天”部分相互作用——你需要检查一下,但听起来确实如此。不应该与您的时区有关。

但是,例如,2014 年的周年从 2013 年 12 月 30 日开始,正是因为这给出了 2014 年的 5 天。如果您查看其他年份,您会发现 1 日历年 X 的前几天在第 52 周或第 X-1 周的第 53 周。

于 2014-11-03T15:17:30.967 回答