Seltsames Verhalten von jodatime beim Parsen einiger Datumsformate

8

Ich habe versucht, eine Datumszeichenfolge mit jodatime mit einem führenden '+' vor dem yyyy -Teil zu parsen. Ich habe erwartet, dass ein Fehler ausgelöst wird, aber es hat tatsächlich keinen Fehler ausgelöst. Ich habe Ausgaben, die keinen Sinn ergeben:

%Vor%

Kann jemand erklären, warum das passiert? Ich erwarte entweder eine Ausnahme, was bedeutet, dass das '+' Zeichen nicht erlaubt ist, oder es sollte 2013 als einfach 2013 interpretieren, was es im letzten Fall zu tun scheint. Aber was ist der Deal mit 20130 in Fall 2 und 3 und Monat = 10 in Fall 2?

    
Hari Menon 11.11.2013, 15:31
quelle

3 Antworten

1

Nachdem ich den joda-time code durchgegangen bin, konnte ich das Problem eingrenzen. Es wurde aufgrund einer anomalen Erhöhung des Codes verursacht. Ich habe ein Problem hier geöffnet. Ich habe auch ein Update fertig hier . Ich werde eine Pull-Anfrage erheben, sobald ich eine Bestätigung erhalten habe, ob es der richtige Weg ist, um es zu beheben.

    
Hari Menon 13.11.2013, 13:18
quelle
1

Wenn Sie eine Ausnahme auf + sign auslösen möchten, können Sie DateTimeFormatterBuilder , es ist flexibler.
Z.B. für das Format yyyyMMdd

%Vor%

Auch dieses Muster ist bereits in Standardmustern vorhanden:

ISODateTimeFormat :: basicDate ()

BEARBEITEN
Aber es gibt seltsames Verhalten im Falle der Verwendung von appendFixedSignedDecimal Methode:

%Vor%

Ich denke, das ist ein Problem in Joda lib, weil

%Vor%

funktioniert wie erwartet

%Vor%

(Dieser Fall ist in Unit Tests für die joda Bibliothek)

    
Ilya 12.11.2013 18:38
quelle
0

Dies ist keine Antwort, aber könnte helfen ..:

%Vor%

Beachten Sie, dass in Fall 2 die Zeitzonen geändert wurden.

Ich bin in der Zeitzone ET und benutze joda-time v2.3

    
yegeniy 12.11.2013 16:35
quelle

Tags und Links