Ist es möglich, einen DateFormatter zu erstellen, der ein zweistelliges Jahr in ein vierstelliges Jahr umwandelt?

7

In meiner Java-Anwendung verwende ich eine DateFormat -Instanz, um Datumseingaben zu analysieren.

%Vor%

Das Problem besteht darin, dass der Benutzer darauf besteht, Daten in der Form 31.12.11 einzugeben.

Leider wird dies nach 31.12.11 geparst. ( 0011-12-31 im ISO-Format) Stattdessen möchte ich, dass das analysierte Datum 31.12.2011 ( 2011-12-31 im ISO-Format) wird.

Kann ich das Datumsformat so ändern, dass Eingaben irgendwie analysiert werden?

    
Daniel Rikowski 28.02.2011, 15:12
quelle

6 Antworten

11

Sie müssen mit einem Format von dd.MM.yy analysieren und mit einem Format von yyyy-MM-dd neu formatieren

%Vor%

Weitere Informationen zum Festlegen von Mustern finden Sie in der Java-API.

Ссылка

    
josh.trow 28.02.2011, 15:14
quelle
5

Ihre Lösung hier ist ausreichend einfach, um die Verwendung von SimpleDateFormat zu ermöglichen, das die Methode set2DigitYearStart(Date startDate) enthält. Vielleicht sieht es in etwa so aus.

%Vor%     
Mike Yockey 28.02.2011 15:20
quelle
1

Ja, Sie könnten mit DateFormat.SHORT anstelle von DEFAULT analysieren.

Oder versuchen Sie möglicherweise, mit SHORT zu analysieren, und versuchen Sie dann andere Formate, wenn das nicht funktioniert.

    
G B 28.02.2011 15:22
quelle
1

Sie können dieses Datum mit SimpleDateFormat analysieren, aber wie Sie feststellen, dass es sich um 1911 oder 2011 oder etwas anderes handelt. Sie sollten das Jahrformat als yyyy verwenden.

    
Ajit Sharma 28.02.2011 15:30
quelle
1

Wenn Sie GWT verwenden, haben Sie keinen Zugriff auf SimpleDateFormat, also hier ist ein Code, um es manuell zu tun:

%Vor%

Dies setzt voraus, dass Sie validiert haben, dass dateText durch Leerzeichen getrennt ist.

    
Craigo 25.03.2013 03:26
quelle
0

Eine Annäherung:

%Vor%

Kann oder passt vielleicht nicht zu Ihrem Bedürfnis ...

    
tplive 08.03.2018 09:36
quelle

Tags und Links