Qualcuno può spiegare perché ottengo quei valori durante il tentativo di analizzare una data? Ho provato tre ingressi differenti, come segue:Strano comportamento di ww SimpleDateFormat
1) Terza decade di 2013
Date date = new SimpleDateFormat("ww.yyyy").parse("02.2013");
Calendar cal = Calendar.getInstance();
cal.setTime(date);
System.out.println(cal.get(Calendar.WEEK_OF_YEAR) + "." + cal.get(Calendar.YEAR));
quali uscite: 02.2013
(come mi aspettavo)
2) Prima settimana del 2013
Date date = new SimpleDateFormat("ww.yyyy").parse("00.2013");
Calendar cal = Calendar.getInstance();
cal.setTime(date);
System.out.println(cal.get(Calendar.WEEK_OF_YEAR) + "." + cal.get(Calendar.YEAR));
Quali uscite: 52.2012
(che va bene per me, poiché la prima settimana del 2013 è anche l'ultima del 2012)
3) Seconda settimana di 2013
Date date = new SimpleDateFormat("ww.yyyy").parse("01.2013");
Calendar cal = Calendar.getInstance();
cal.setTime(date);
System.out.println(cal.get(Calendar.WEEK_OF_YEAR) + "." + cal.get(Calendar.YEAR));
quali uscite: 1.2012
(che ha assolutamente alcun senso per me)
Qualcuno sa perché questo accade ?? Devo analizzare una data nel formato (settimana dell'anno). (Anno). Sto usando lo schema sbagliato?
Suggerimento: prendere in considerazione la modifica del formato della settimana dell'anno per seguire il formato non ambiguo definito dallo standard [ISO 8601] (http://en.wikipedia.org/wiki/ISO_8601#Week_dates). Così: '2014-W19'. La libreria [Joda-Time] (http://www.joda.org/joda-time/) potrebbe quindi aiutarti a analizzare e generare tali stringhe usando i suoi formattatori incorporati in [ISODateTimeFormat] (http: //www.joda. org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html) factory. –