JSpinner getValue() Problem

Steven85

Mitglied
Hallo zusammen,

ich habe in einem Frame mit einen JSpinner gebaut welcher mit der Methode spinner.getValue() ein Object mit einem Date zurück gibt.

Mit der Methode spinner.getValue().toString() bekomme ich "Thu Jan 01 00:01:00 CET 1970".

Was ich jetzt möchte ist einfach eine Art Datums Format mit dem ich auch die Zeit auslesen kann oder z.B. nur den Tag.

Sinn der Sache ist die Minuten und Sekundenausgabe mittels eines JSpinners.

Java:
final JSpinner spinLaenge = new JSpinner();
spinLaenge.setModel(new javax.swing.SpinnerDateModel());
spinLaenge.setEditor(new javax.swing.JSpinner.DateEditor(spinLaenge, "mm:ss"));
Calendar cal = GregorianCalendar.getInstance();
cal.set(GregorianCalendar.MINUTE, 0);
cal.set(GregorianCalendar.SECOND, 0);
spinLaenge.setValue(cal.getTime()); // Um den Spinner auf 0 zu setzen
 
Um ehrlich zu sein hätte ich auch so meine Probleme das anständig zu parsen, der Aufwand nur um mm:ss auszulesen erscheint mir zu Umständlich, da würde ich doch lieber den String zerlegen (nach erstem : 2 zeichen auslesen, nach dem letzten : 2 zeichen auslesen und ich habe meine zwei int werte für Minuten und Sekunden). Mit rumparsen mit Date sähe es bei mir so aus:

Java:
try {
    String strDate = spSpinner.getValue().toString();
    System.out.println("spSpinner.getValue(): " + strDate);
    //spSpinner.getValue(): Wed Aug 01 09:52:31 CEST 2012
    DateFormat formatter;
    Date date;
    formatter = new SimpleDateFormat("E MMMM dd HH:mm:ss Z yyyy", Locale.ENGLISH);
    date = (Date) formatter.parse(strDate);
    System.out.println("SimpleDateFormat parse: " + date);
    //SimpleDateFormat parse: Wed Aug 01 09:52:31 CEST 2012
    SimpleDateFormat sdf = new SimpleDateFormat("mm:ss");
    StringBuilder sbTmp = new StringBuilder(sdf.format(date));
    System.out.println("SimpleDateFormat mm:ss: " + sbTmp);
    //SimpleDateFormat mm:ss: 52:31
} catch (ParseException e) {
    System.out.println("Exception: " + e);
}

vermutlich denke ich aber um zuviele Ecken
 
sag ja, denke wohl um zuviele Ecken 🙂

Java:
    date = (Date) spSpinner.getValue();
    SimpleDateFormat sdf = new SimpleDateFormat("mm:ss");
    String strTmp2 = sdf.format(date);
    System.out.println("SimpleDateFormat mm:ss: " + strTmp2);


oder gehts noch einfacher?
 
Bei dieser Variante,

Java:
Date date = (Date) spinLaenge.getValue();
SimpleDateFormat sdf = new SimpleDateFormat("mm:ss");
String strTmp2 = sdf.format(date);

bekomme ich bei,

Java:
Date date = (Date) spinLaenge.getValue();

eine ClassCastException.

Ansonsten ist das schon richtig. Ich will nur an die "mm:ss" ran.
 
zur ClassCastException fällt mir nur falscher Import java.sql.Date als Fehlerquelle ein
 

Neue Themen


Zurück
Oben