2014-10-17 8 views
17

La classe DateTimeFormatter di Java 8 ha un metodo, ofPattern (String pattern), che consente di definire un formato da una stringa di lettere A-z, a-z. Gli esempi non chiariscono la differenza tra y, anno dell'era e Y, anno basato sulla settimana. Che cos'è?Differenza tra l'anno dell'era e l'anno della settimana?

Symbol Meaning      Presentation  Examples 
------ -------      ------------  ------- 
y  year-of-era     year    2004; 04 
Y  week-based-year    year    1996; 96 

risposta

18

Questo è il valore dell'anno per le date in stile "settimana dell'anno", come nel 2006W52. Potrebbe essere spento il valore di anno di era di +1 o -1 se la settimana in questione è a cavallo tra i confini dell'anno.

Vedi http://en.wikipedia.org/wiki/ISO_8601#Week_dates

+5

Risposta corretta. Per spiegare, alcune applicazioni registrano il tempo per * intere * settimane, dal lunedì alla domenica. La prima settimana è definita come la settimana con il primo giovedì dell'anno. La [prima settimana del 2014] (http://www.epochconverter.com/date-and-time/weeknumbers-by-year.php) è iniziata il 30 dicembre 2013, terminando il 5 gennaio 2014. Quindi la settimana- l'anno sia del 30 e 31 dicembre 2013 è '2014'. –

3

Ogni campo è documentato in una classe "campo", come ad esempio ChronoField, WeekFields o IsoFields.

Il campo "anno dell'era" è documentato in ChronoField.

Il campo "settimana-anno" è documentato in WeekFields.