Datum in Textfeld automatisch formatieren

Status
Nicht offen für weitere Antworten.

teh_raccoon

Mitglied
huhu :)

Es geht um ein Textfeld, für ein Datum in der Vergangenheit. Der Benutzer ist sich gewohnt in der alten Applikation als Datum nur 03101987 einzutippen. Rauskommen soll nun ein formatiertes Datum. In diesem Beispiel also 03.10.1987. Nun habe ich einen FocusListener gebaut:

Code:
public void focusLost(FocusEvent evt) {
                // TODO Auto-generated method stub
               
                Object source = evt.getSource();
                if (source == erldatTextField){
                        String inErldat = erldatTextField.getText();
                        if (inErldat.length() == 8){
                                String day = inErldat.substring(0, 2);
                                String mon = inErldat.substring(2, 4);
                                String year = inErldat.substring(4, 8);
                                erldatTextField.setText(day + "." + mon + "." + year);
                        } else {
                                erldatTextField.setText("Ungülitg");
                        }

                       
                }

Allerdings ist diese Lösung nicht sehr optimal. Denn wenn der Benutzer nochmal in das Feld klickt und dann wieder rausgeht, wird das das Datum 03.10.1987 zu 03..1.0.19 (wegen substring). Ich fange ein solches Ergebnis ab mit der Bedingung, dass die Zeichenanzahl 8 sein muss, ansonsten wird "Ungültig" ausgegegeben.

Gibts da eine elegantere Methode, den Fehler zu handlen oder den String "03101987" in ein mit Punkten getrennten Datum auszugeben.
 

teh_raccoon

Mitglied
Code:
import java.util.*;
import java.text.*;
Date dt = new Date();
// Festlegung des Formats:
SimpleDateFormat df = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss.S" );
df.setTimeZone( TimeZone.getDefault() );                  // nicht mehr unbedingt notwendig seit JDK 1.2
// Formatierung zu String:
System.out.println( "Date = " + df.format( dt ) );        // z.B. '2001-01-26 19:03:56.731'
// Ausgabe für andere Zeitzone:
df.setTimeZone( TimeZone.getTimeZone( "Africa/Casablanca" ) );
System.out.println( "Casablanca = " + df.format( dt ) );  // z.B. '2001-01-26 18:03:56.731'
// Einlesen vom String:
dt = df.parse( "2001-02-03 04:05:06.7" );
System.out.println( "parse = " + df.format( dt ) );       // z.B. '2001-02-03 04:05:06.7'

Ich habe aber kein formatiertes Datum wie "yyyy-MM-dd HH:mm:ss.S". Und genau die konvertierung von "03101987" in "03.10.1987" macht mir ja mühe (siehe oben)

Wie kann ich also 03101987 in 03.10.1987 umwandeln?
 

teh_raccoon

Mitglied
Verjigorm hat gesagt.:
5. google treffer:

http://www.galileocomputing.de/openbook/javainsel6/javainsel_10_008.htm

Code:
SimpleDateFormat format = new SimpleDateFormat( "ddMMy" ); 
		try { 
			Date date = format.parse( "03101987" );
			System.out.println(date);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

den rest schaffste sicher alleine :)

Danke :)

Edit: Ich bekomm das Datum trotzdem nicht richtig hin. Die Ausgabe ist Sat Oct 03 00:00:00 CET 1987 und nicht das erwartete 03.10.1987 :bahnhof:
 

Ariol

Top Contributor
Code:
SimpleDateFormat format = new SimpleDateFormat( "dd.MM.yyyy" );

???
 

teh_raccoon

Mitglied
Code:
java.text.ParseException: Unparseable date: "03101987"
	at java.text.DateFormat.parse(Unknown Source)
	at archiv.ErfassenGUI.focusLost(ErfassenGUI.java:292)
	at java.awt.AWTEventMulticaster.focusLost(Unknown Source)
	at java.awt.Component.processFocusEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
	at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at archiv.ErfassenGUI.focusLost(ErfassenGUI.java:299)
	at java.awt.AWTEventMulticaster.focusLost(Unknown Source)
	at java.awt.Component.processFocusEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
	at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

:S
 

Verjigorm

Top Contributor
ich habs extra verlinkt ... ganz unten steht die Lösung wie es weitergeht .......
lesen bildet :p

Code:
		String st = "03101987";
		SimpleDateFormat format = new SimpleDateFormat( "ddMMy" ); 
		try { 
			Date date = format.parse(st);
			System.out.println(date);
			Calendar cal = Calendar.getInstance(); 
			cal.setTime( date ); 
			 
			DateFormat formater2 = DateFormat.getDateInstance( DateFormat.MEDIUM); 
			String s = formater2.format( cal.getTime() ); 
			System.out.println( s );
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}


teh_raccoon hat gesagt.:
Verjigorm hat gesagt.:
5. google treffer:

http://www.galileocomputing.de/openbook/javainsel6/javainsel_10_008.htm

Code:
SimpleDateFormat format = new SimpleDateFormat( "ddMMy" ); 
		try { 
			Date date = format.parse( "03101987" );
			System.out.println(date);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

den rest schaffste sicher alleine :)

Danke :)

Edit: Ich bekomm das Datum trotzdem nicht richtig hin. Die Ausgabe ist Sat Oct 03 00:00:00 CET 1987 und nicht das erwartete 03.10.1987 :bahnhof:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Tage zum Datum addieren AWT, Swing, JavaFX & SWT 2
S Swing zu einem Datum Tage addieren/subtrahieren AWT, Swing, JavaFX & SWT 6
S Swing Datum umformen AWT, Swing, JavaFX & SWT 3
Esquid Datum zu Wochentag Rechner AWT, Swing, JavaFX & SWT 1
T Swing Problem mit Datum und FormattedTextField AWT, Swing, JavaFX & SWT 2
P JavaFX StackedAreaChart mit Datum und Zeit AWT, Swing, JavaFX & SWT 2
H Swing JCalendarCombo nachträglich Datum und Time AWT, Swing, JavaFX & SWT 2
A SWT DateTime Calendar - Nur ab Datum xy selektierbar möglich? AWT, Swing, JavaFX & SWT 2
N Swing JSpinner mit Datum aber ohne Uhrzeit AWT, Swing, JavaFX & SWT 2
D Datum im Nachocalendar vergleichen AWT, Swing, JavaFX & SWT 2
J Swing Swing Ein/Ausgabe von einem Datum AWT, Swing, JavaFX & SWT 3
S Datum in Tabelle darstellen? AWT, Swing, JavaFX & SWT 4
A Datum prüfen AWT, Swing, JavaFX & SWT 11
N JCalendar - Kein Datum auswählen AWT, Swing, JavaFX & SWT 3
L SWT-Table: Datum ausgeben? AWT, Swing, JavaFX & SWT 5
M Datum Textfield AWT, Swing, JavaFX & SWT 6
W JTable und die java.sql.xxx Datum-/Zeitformate AWT, Swing, JavaFX & SWT 5
P Aktuelles Datum in einem JTextField AWT, Swing, JavaFX & SWT 3
S Datum formatieren AWT, Swing, JavaFX & SWT 19
M Datum in Fenster? AWT, Swing, JavaFX & SWT 7
D Datum in JTable AWT, Swing, JavaFX & SWT 2
D Systemuhr und Datum in JLabel anzeigen AWT, Swing, JavaFX & SWT 7
D Button und Textfeld Darstellung AWT, Swing, JavaFX & SWT 3
B Scene Builder Textfeld Begrenzen AWT, Swing, JavaFX & SWT 3
T JavaFX MultiLine / MultiStyle Textfeld AWT, Swing, JavaFX & SWT 1
izoards Textfeld für Zeit AWT, Swing, JavaFX & SWT 4
E Frage zum Textfeld AWT, Swing, JavaFX & SWT 8
B Ausgaben einer Umrechnung vom Textfeld in ein Label AWT, Swing, JavaFX & SWT 2
Z Swing Wert aus Textfeld auslesen -- null Fehler AWT, Swing, JavaFX & SWT 4
J SWT Textfeld markieren und kopieren AWT, Swing, JavaFX & SWT 0
A Swing nur Zahlen im Spinner(Textfeld) eingeben ! AWT, Swing, JavaFX & SWT 16
L Ein Actionlistener für ein Textfeld, anstatt viele Actionlistener für ein Textfeld AWT, Swing, JavaFX & SWT 7
karlmasutra JavaFX Verzeichnispfad wählen und an Textfeld übergeben AWT, Swing, JavaFX & SWT 2
J Text in ein Textfeld eingeben und speichern AWT, Swing, JavaFX & SWT 27
cool_brivk24 Großes Textfeld AWT, Swing, JavaFX & SWT 8
J Textfeld nicht sichtbar AWT, Swing, JavaFX & SWT 2
P Knopf gedrückt -> Textfeld befüllen AWT, Swing, JavaFX & SWT 9
P Variable einer Eingabe in anderes Textfeld schreiben AWT, Swing, JavaFX & SWT 7
T [Neuling] Textfeld Inhalt überprüfen und falsche Stellen als msg Ausgeben AWT, Swing, JavaFX & SWT 1
V Swing Eingabe aus Textfeld abholen AWT, Swing, JavaFX & SWT 6
K Swing Textfeld verstecken aber benutzen AWT, Swing, JavaFX & SWT 15
J Swing Strings werden nicht in Textfeld geschrieben AWT, Swing, JavaFX & SWT 8
P Anfängerproblem mit Textfeld AWT, Swing, JavaFX & SWT 6
C Textfeld und Label werden nicht angezeigt (Ubuntu) AWT, Swing, JavaFX & SWT 2
F Textfeld Währungszahlen und automatische Aktualisierung AWT, Swing, JavaFX & SWT 14
R AWT AWT Textfeld durch Klick auf Button erstellen? AWT, Swing, JavaFX & SWT 3
D JavaFX Textfeld Eingabe validieren AWT, Swing, JavaFX & SWT 5
W Swing Nicht-Editierbares Textfeld in Panel in ScrollPane AWT, Swing, JavaFX & SWT 9
T SWT Button soll nur sichbar sein,wenn im Textfeld der Focus ist AWT, Swing, JavaFX & SWT 4
A Textfeld.append/.setText ohne Funktion AWT, Swing, JavaFX & SWT 2
G Text im textfeld in einem Editor anzeigen AWT, Swing, JavaFX & SWT 18
A Swing Zwei Klassen mit Textfeld Eingaben vergleichen und Ausgabe erzeugen AWT, Swing, JavaFX & SWT 10
N JavaFX Textfeld nur Zahlen und nur von 5 bis 30 AWT, Swing, JavaFX & SWT 11
D Eigenes Textfeld AWT, Swing, JavaFX & SWT 8
A combobox automatisch in ein textfeld wechseln AWT, Swing, JavaFX & SWT 3
D textfeld string zu float AWT, Swing, JavaFX & SWT 5
C TextFeld in Verbindung zur ComboBox automatisch aktualisieren AWT, Swing, JavaFX & SWT 7
C Swing Button in Textfeld (JFormattedTextField) AWT, Swing, JavaFX & SWT 7
A Textfeld nachträglich einfügen AWT, Swing, JavaFX & SWT 4
D JSlider und Textfeld AWT, Swing, JavaFX & SWT 2
E Textfeld auslesen AWT, Swing, JavaFX & SWT 2
G Swing Formatiertes Textfeld mit Trennzeichen AWT, Swing, JavaFX & SWT 2
T Swing URL übergabe aus einem Textfeld AWT, Swing, JavaFX & SWT 17
L SWT Textfeld AutoCompletion AWT, Swing, JavaFX & SWT 3
SexyPenny90 NumberFormatException Textfeld AWT, Swing, JavaFX & SWT 4
P SWT Toolbar mit nur einer Schaltfläche und einem Textfeld AWT, Swing, JavaFX & SWT 2
C Textfeld automatisch befüllen AWT, Swing, JavaFX & SWT 6
S Swing Textfeld Sonderzeichen Blockiern AWT, Swing, JavaFX & SWT 2
alex_fairytail Swing Textfeld Action wenn geschrieben wird? AWT, Swing, JavaFX & SWT 6
C SWT Textfeld mit festem und variablen Inhalt AWT, Swing, JavaFX & SWT 13
J Textfeld Rotation AWT, Swing, JavaFX & SWT 2
C Live Suche mit TextFeld AWT, Swing, JavaFX & SWT 2
maddin86 Eingabe in Textfeld 1 synchron in Textfeld 2 ausgeben AWT, Swing, JavaFX & SWT 9
R JDateChooser Datumseingabe via TextFeld wird verworfen AWT, Swing, JavaFX & SWT 8
W Daten auf Textfeld in anderer Klasse verwenden AWT, Swing, JavaFX & SWT 4
A aus einem Textfeld in double parsen AWT, Swing, JavaFX & SWT 10
A TextField: Textfeld teilweise editierbar AWT, Swing, JavaFX & SWT 2
1 Textfeld auslesen AWT, Swing, JavaFX & SWT 11
G Swing Komponente gesucht (Textfeld mit Liste) AWT, Swing, JavaFX & SWT 2
C SWT: Mehrere Formatter in einem Textfeld AWT, Swing, JavaFX & SWT 6
D Markierter Text in Textfeld AWT, Swing, JavaFX & SWT 3
L SWT Darstellung des Datums in Textfeld? AWT, Swing, JavaFX & SWT 2
M SWT Breite von Textfeld nur ohne Layout änderbar AWT, Swing, JavaFX & SWT 2
H Ausgabe an Textfeld JTextField AWT, Swing, JavaFX & SWT 3
F In Textfeld Kommazahl anzeigen aber ohne Komma eingeben AWT, Swing, JavaFX & SWT 14
D textfeld mit 0 bis n ziffern AWT, Swing, JavaFX & SWT 11
D SWT String aus Textfeld auslesen und in eine Tabelle speichern AWT, Swing, JavaFX & SWT 5
C Button/Textfeld mit Variable verknüpfen AWT, Swing, JavaFX & SWT 4
X Eingabe in Textfeld soll Button aktivieren... AWT, Swing, JavaFX & SWT 12
S SWT Bei Auslösen eines Buttones ein Textfeld generieren AWT, Swing, JavaFX & SWT 2
T SWT String mitten ins Textfeld einfügen + richtige Cursorposition AWT, Swing, JavaFX & SWT 3
N Textfeld füllen sobald es den Fokus verliert AWT, Swing, JavaFX & SWT 2
M SWT Wie Textfeld hinzufügen, nach Auswahl von einem bestimmten Combobox-item? AWT, Swing, JavaFX & SWT 3
M Bilder in einem Textfeld darstellen AWT, Swing, JavaFX & SWT 2
D Objekt (Map) in Textfeld ausgeben AWT, Swing, JavaFX & SWT 10
O Intwerte in Textfeld dastellen AWT, Swing, JavaFX & SWT 4
T Textfeld autmoatisch aktualisieren AWT, Swing, JavaFX & SWT 5
G CellEditor - Kein "Textfeld" AWT, Swing, JavaFX & SWT 6
O [SWT] Autocomplete bei Textfeld in PreferencePage AWT, Swing, JavaFX & SWT 2
G SWT - TextFeld automatisch aktualisieren AWT, Swing, JavaFX & SWT 15

Ähnliche Java Themen

Neue Themen


Oben