Ich verwende dieses DateTimeFormatter:
%Vor% Ich möchte die Zeichenfolge 150790
analysieren und habe diesen Fehler erhalten:
Offensichtlich möchte ich das folgende TemporalAccessor
:
Weißt du, warum ich das Jahr 2090 statt 1990 bekommen habe?
Danke für Ihre Hilfe
Da es sich bei dieser Frage wirklich um neue java.time
-package und NOT SimpleDateFormat
handelt, werde ich nach relevanter Abschnitt :
Jahr: Die Anzahl der Buchstaben bestimmt die minimale Feldbreite darunter welches Padding verwendet wird. Wenn die Anzahl der Buchstaben zwei ist, dann reduziert zweistellige Form wird verwendet. Zum Ausdrucken gibt dies die beiden rechten aus Ziffern. Beim Parsen analysiert dies den Basiswert 2000, Daraus ergibt sich ein Jahr im Bereich von 2000 bis einschließlich 2099.
Wir sehen, dass Java-8 standardmäßig den Bereich 2000-2099 verwendet, nicht wie SimpleDateFormat
den Bereich -80 Jahre bis +20 Jahre im Vergleich zu heute.
Wenn Sie es konfigurieren möchten, müssen Sie appendValueReduced () . Dies ist in einer unbequemen Weise gestaltet, aber möglich, siehe hier:
%Vor% Übrigens, wenn Sie wirklich wochenbasierte Jahre wollen, dann müssen Sie Y anstelle von y oder das entsprechende Feld IsoFields.WEEK_BASED_YEAR
verwenden. In Anbetracht der Tatsache, dass Sie keine anderen Wochen bezogenen Felder haben, würde ich das normale Kalenderjahr, nicht das Wochenbasierte, annehmen.
Tags und Links java date java-time 2-digit-year