Format der Datumsausgabe von JCalendarCombo ändern

Tinipieps

Mitglied
Hallo!
Kennt sich jemand mit JCalendarCombo aus?

Ich lasse die Auswahl in der JCalendarCombo in eine Excel-Datei schreiben! Leider erscheint das Datum dort in folgender Form:

Mon Mar 08 13:06:59 CET 2010


Diese Form der Ausgabe entsteht über
Code:
JCalendarCombo calendar = new JCalendarCombo(JCalendarCombo.DISPLAY_DATE, false);
calendar.getDate().toString();

Nun wollte ich aber eher eine Ausgabe mit dem Schema "d MMM yyyy" erzeugen.
In der Dokumentation habe ich die Methode "setDateFormat()" gefunden!
Leider bin ich noch relativ neu in der Welt von Java und weiß nicht genau, was ich in diese Methode schreiben müsste, um die Ausgabe im vorgegebenen Format zu erhalten.

Bei folgendem Code, der unabhängig von der set-Methode benutzt werden sollte, streikt Eclipse:
Code:
calendar.setDateFormat(new SimpleDateFormat("d MMM yyyy"));

Wäre über schnelle Hilfe sehr dankbar
 
Du kannst das Date was dir calendar.getDate() zurückgibt mit dem SimpleDateFormat beliebig ausgeben.
Einfach eine Instanz anlegen und die format(Date date) Methode benutzen.

Java:
package test;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 
 * @author Kleeschulte
 * @since 08.08.2010
 */
public class SDFExample {
	public static void main(String[] args) {
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("d MMM yyyy");
		System.out.println(sdf.format(date));
	}
}

http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html
 
Zuletzt bearbeitet:
Hallo Johannes!

Auf der einen Seite habe ich ausgehend von deinem Text zunächst gedacht, zu wissen, was du ungefähr meinst. Allerdings habe ich nicht so recht verstanden, wie mir dein Code-Beispiel helfen soll!

Ich hab versucht direkt beim Aufruf der Methode getDate() auf das SimpleDateFormat zuzugreifen, auch habe ich versucht deinen Ansatz in die Methode getDate() einzufügen!
Nichts hat zu einem respektablen ergebnis geführt! (Wahrscheinlich aufgrund meiner geringen Programmiererfahrung!)
Ich hab jetzt gefunden, dass getDate().toLocaleString() (deprecated) zu folgender Ausgabe führt:

09.03.2010 12:23

Ist ja schonmal ein Anfang. Nur stört mich in dem Fall noch die Zeit!

Also, wenn du mir eventuell nochmal genauer erklären könntest, wie ich das in der Methde getDate() einbinden kann, wäre ich dir echt dankbar
 
Java:
package test;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 
 * @author Kleeschulte
 * @since 08.08.2010
 */
public class SDFExample {
	public static void main(String[] args) {
		JCalendarCombo calendar = new JCalendarCombo(JCalendarCombo.DISPLAY_DATE, false);
		Date date = calendar.getDate();
		SimpleDateFormat sdf = new SimpleDateFormat("d MMM yyyy");
		System.out.println(sdf.format(date));
	}
}
 
Entschuldige, wenn du mir immernoch nicht helfen kannst!
Ich bin halt wirklich noch sehr neu in der Welt von Java!

Hier mal mein Code, in dem ich die Methode getDate() benutze (schreibe den erhaltenen Wert direkt in eine Excel-Tabelle und brauche keine sysout)

Code:
public void actionPerformed(ActionEvent e) {
			try{
				if (  calendar2.isNullAllowed() &&
						! stromzaehlerEingabe.getText().isEmpty() &&
							! wasserzaehlerEingabe.getText().isEmpty() &&
								! gaszaehlerEingabe.getText().isEmpty() ){
																
					tab.tabelleFuellen(calendar2.getDate().toString(), 
							stromzaehlerEingabe.getText(), gaszaehlerEingabe.getText(), 
								wasserzaehlerEingabe.getText() );
					stromzaehlerEingabe.setText("");
					wasserzaehlerEingabe.setText("");
					gaszaehlerEingabe.setText("");
				}
				else {
					JOptionPane.showMessageDialog(
						JCalendar.this, 
						"Bitte geben Sie das Datum UND die Zaehlerstaende der Ablesung an");
				}
				
			} catch (Exception ex) {
				ex.printStackTrace();
				JOptionPane.showMessageDialog(JCalendar.this, "FEHLER: "+ex);
			}
		}

Ich brauche also irgendeine Möglichkeit in der actionPerformed-Methode, das neue DateFormat einzufügen!
 
Die Instanzierung der Klasse SimpleDateFormat solltest du evtl. noch globaler machen, falls sie an anderer Stelle auch verwendet wird.
Java:
formed(ActionEvent e) {
 SimpleDateFormat sdf = new SimpleDateFormat("d MMM yyyy");
			try{
				if (  calendar2.isNullAllowed() &&
						! stromzaehlerEingabe.getText().isEmpty() &&
							! wasserzaehlerEingabe.getText().isEmpty() &&
								! gaszaehlerEingabe.getText().isEmpty() ){
																
					tab.tabelleFuellen(sdf.format(calendar2.getDate()), 
							stromzaehlerEingabe.getText(), gaszaehlerEingabe.getText(), 
								wasserzaehlerEingabe.getText() );
					stromzaehlerEingabe.setText("");
					wasserzaehlerEingabe.setText("");
					gaszaehlerEingabe.setText("");
				}
				else {
					JOptionPane.showMessageDialog(
						JCalendar.this, 
						"Bitte geben Sie das Datum UND die Zaehlerstaende der Ablesung an");
				}
				
			} catch (Exception ex) {
				ex.printStackTrace();
				JOptionPane.showMessageDialog(JCalendar.this, "FEHLER: "+ex);
			}
		}
 
Zurück