datetime - Understanding java.util.Calendar WEEK_OF_YEAR -
i'm trying understand how java.util.calendar.get(java.util.calendar.week_of_year) works, seems i'm missing points.
string time = "1998-12-31"; // year month day java.util.calendar date = java.util.calendar.getinstance(); date.settime((new java.text.simpledateformat("yyyy-mm-dd")).parse(time)); system.err.println("week of year = " + date.get(java.util.calendar.week_of_year)); // week of year = 1 why ??? why date.get(java.util.calendar.week_of_year) returns 1 last week of year?
moreover, week_of_year "1998-01-01" 1 , "1998-12-23" 52.
have explanation behavior?
from java.util.calendar javadoc:
first week
calendar defines locale-specific 7 day week using 2 parameters: first day of week , minimal days in first week (from 1 7). these numbers taken locale resource data when calendar constructed. may specified explicitly through methods setting values.
when setting or getting week_of_month or week_of_year fields, calendar must determine first week of month or year reference point. first week of month or year defined earliest 7 day period beginning on getfirstdayofweek() , containing @ least getminimaldaysinfirstweek() days of month or year. weeks numbered ..., -1, 0 precede first week; weeks numbered 2, 3,... follow it. note normalized numbering returned get() may different. example, specific calendar subclass may designate week before week 1 of year week n of previous year.
so it's locale-specific. in case, if week contains days new year, counted week 1 new year.
you can change behavior using calendar#setminimaldaysinfirstweek(int).
Comments
Post a Comment