2016-07-15 12 views
1
DateTime time=DateTimeFormat.forPattern("yyyy-ww").parseDateTime("2013-01"); 

wobei DateTimeFormatorg.joda.time.format.DateTimeFormat ist.Warum gibt das Parsen eines Datums mit Wochenangabe das falsche Jahr zurück?

Wenn ich die oben genannten, Zeit wird 2013-12-30T00:00:00.000 was mache ich falsch? Ist das ein Fehler? Ich erwarte, dass es die erste Woche von 2013 ist, nicht die letzte.

+0

Welchen Wert erwarten Sie stattdessen? Warum? –

+0

Das Datum der ersten Woche von 2013 –

+0

2013-02 gibt 2013-01-07 also würde ich 2012-12-31 erwarten –

Antwort

2

Siehe here.

Die w, Woche der Woche, Musterbrief soll mit x, weekyear verwendet werden. Von der javadoc of DateTimeFormat

x  weekyear      year   1996 
w  week of weekyear    number  27 
Ihr Muster
DateTimeFormat.forPattern("xxxx-ww") 

zu

ändern

und Sie werden im Jahr 2012

zu

2012-12-31T00:00:00.000-08:00 

Je nach Locale, in der ersten Woche des Jahres 2013 gestartet analysieren