tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von smuehlba
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
872
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Moltar
    Moltar Moltar ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Beiträge
    53
    Hallo,

    in meiner Anwendung soll vom Benutzer ein Datum eingegeben werden, das später weiterverarbeitet wird. Auf Grund gewünschter Flexibilität bei der Eingabe sollen verschiedene Datumsformate möglich sein:

    Code :
    1
    2
    3
    
    DateFormat gerDateFormat = new SimpleDateFormat("dd.MM.yyyy");
    DateFormat isoDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    DateFormat shortDateFormat = new SimpleDateFormat("ddMMyy");

    Die Ausgabe soll im Beispiel als deutsches Datum erfolgen (gerDateFormat). Bisher habe ich das so gelöst:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    if(value != null && !value.equals("")) {
        Date date = null;
        try {
            date = isoDateFormat.parse(value.toString());
            component.setText(gerDateFormat.format(date));
        } catch (ParseException e) {
            try {
                date = gerDateFormat.parse(value.toString());
                component.setText(gerDateFormat.format(date));
            } catch(ParseException e1) {
                try {
                    date = shortDateFormat.parse(value.toString());
                    component.setText(gerDateFormat.format(date));
                } catch(ParseException e2) {
                    try {
                        Date y = new Date();
                        DateFormat yf = new SimpleDateFormat("yy");
                        date = shortDateFormat.parse(value.toString() + yf.format(y));
                        component.setText(gerDateFormat.format(date));
                    } catch(ParseException e3) {
                        MyMessage.showError("Ungültiger Datumswert: " + value.toString());
                        component.setText("");
                    }
                }
            }
        }
    }

    Das ist aber ziemlich unhandlich und falls ein weiteres Format hinzukommt, wird das immer schlimmer.

    Weiß jemand, wie man das möglicherweise anders lösen könnte?

    Grüße und danke schonmal
    Moltar
    Geändert von Moltar (11.06.07 um 13:22 Uhr)
     

  2. #2
    smuehlba smuehlba ist offline Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    10
    Hi, leg alle formatter in ne Liste und versuchs mit ner Schleife:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    Collection<SimpleDateFormat> formatter = new ArrayList<SimpleDateFormat>();
    formatter.add(new SimpleDateFormat("dd.MM.yyyy"));
    formatter.add(new SimpleDateFormat("yyyy-MM-dd"));
    formatter.add(new SimpleDateFormat("ddMMyy"));
    Date date = null;
    for(SimpleDateFormat f : formatter)
    {
        try
        {
            date = f.parse(value.toString());
            break;
        }
        catch (ParseException e)
        {
            // TODO: handle exception
        }
    }
    if(date==null)
    {
        .
        .
        .
    }

    mfg smuehlba
    Moltar bedankt sich. 

  3. #3
    Avatar von Moltar
    Moltar Moltar ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Beiträge
    53
    Super,
    sowas hab ich gesucht, danke!

    Grüße
    Moltar
     

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 30.09.08, 12:18
  2. Datum Parsen
    Von port29 im Forum Java
    Antworten: 4
    Letzter Beitrag: 20.11.07, 10:37
  3. Datum über Kalender eingeben
    Von hondocrx im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 20.09.06, 02:58
  4. datum parsen...
    Von partitionist im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 26.07.06, 08:28
  5. Antworten: 5
    Letzter Beitrag: 11.01.05, 19:24