Apr 17

Heute geht es um die (Rück-)Umwandlung eines Datums in einen String:

Date datum = new Date(123456789L);
DateFormat a = DateFormat.getDateInstance(DateFormat.SHORT);
System.out.println(a.format(datum));
// Ausgabe: 02.01.70 11:17

String string = a.format(datum); // Umwandlung in einen String
System.out.println(string); // Ausgabe gleich der formatierten Ausgabe: 02.01.70 11:17

Date neues_datum = new Date();

try {
neues_datum = a.parse(string);
// Zurückparsen des Strings in ein Datum
System.out.println(neues_datum.toString()); // Ausgabe des Datums: Fri Jan 02 00:00:00 CET 1970
} catch (Exception e) { e.printStackTrace(); }

Bitte beim Rückparsen (bzw bei Fragen zu solchen) genau aufpassen; da ja die Zeit nicht dem String übergeben wurde, kann diese auch nicht in das Datum zurückgeparst werden. Es wird also die default-Zeitangabe 00:00:00 gespeichert.

Apr 15

Heute wollen wir uns die Befehle zur Datumsformatierung anschauen:

Date datum = new Date(123456789L); // Anlage des zu formatierendenden Datums
DateFormat a = DateFormat.getInstance(); // Anlage eines Format-Objektes

System.out.println(datum.toString()); // “ursprüngliches” Datumsformat: Fri Jan 02 11:17:36 CET 1970
System.out.println(a.format(datum)); // Urspungsformat: 02.01.70 11:17

DateFormat b = DateFormat.getDateInstance();
System.out.println(b.format(datum)); // Urspungsformat: 02.01.1970

DateFormat c = DateFormat.getDateInstance(DateFormat.SHORT);
System.out.println(c.format(datum)); //Ausgabe: 02.01.70

DateFormat d = DateFormat.getDateInstance(DateFormat.MEDIUM);
System.out.println(d.format(datum)); //Ausgabe: 02.01.1970

DateFormat e = DateFormat.getDateInstance(DateFormat.LONG);
System.out.println(e.format(datum)); //Ausgabe: 02. Januar 1970

DateFormat f = DateFormat.getDateInstance(DateFormat.FULL);
System.out.println(f.format(datum)); //Freitag, 2. Januar 1970

Apr 13

Wie schon in der Übersicht kurz angesprochen dient java.util.Date als eine Art Brücke zu Calendar. Dies schauen wir uns heute genauer an:

Calendar Kalender = Calendar.getInstance(); // Anlage eines Objektes vom Typ Calendar
Date datum = new Date(123456789L); // Anlage eines Objektes vom Typ Datum

System.out.println(datum.toString()); // Ausgabe des Datums, hier: Fri Jan 02 11:17:36 CET 1970

Bis hierhin also nichts neues.    Nun wollen wir uns mal die Zusammenarbeit beider Klassen anschauen:

Kalender.setTime(datum); // Übergabe des Wertes an Calendar
Kalender.add(Calendar.HOUR, + 20);
// Calendar fügt 20 Stunden dem Datum hinzu
datum=Kalender.getTime(); // … und übergibt den Wert zurück an das Objekt datum

System.out.println(datum.toString()); // Ausgabe:  Sat Jan 03 07:17:36 CET 1970

Wir können aber auch mit dieser Funktion 20 Stunden hinzuzählen ohne dass andere Werte des Objektes berücksichtigt werden:

Kalender.roll(Calendar.HOUR, +20);// Hinzufügen von 20 Stunden
datum=Kalender.getTime(); // Übergabe an Datum
System.out.println(datum.toString()); //Ausgabe: Sat Jan 03 07:17:36 CET 1970

System.out.println(Kalender.getTime()); // gleiche Ausgabe, es muss also nicht zwingend an Date zurückgegeben werden

Apr 11

Heute wollen wir uns die java.util.Calendar-Funktionen genauer anschauen:

Calendar Kalender = Calendar.getInstance(); //Anlage eines Standard-Kalenders
System.out.println(Kalender.getTime()); // Ausgabe der Zeit, hier: Mon Apr 11 08:28:58 CEST 2011

es können aber auch kompliziertere Werte abgefragt werden, z.B.

System.out.println(Kalender.get(Calendar.WEEK_OF_YEAR)); // Ausgabe der Jahreswoche, hier: 15
System.out.println(Kalender.get(Calendar.DAY_OF_YEAR)); // Ausgabe der Anzahl Tage in diesem Jahr bis zum gespeicherten Datum, hier: 101

Bitte beachtet, dass Calendar abstrakt ist und deswegen Calendar c = new Calendar(); zu einem Compilerfehler führt.

Tagged with:
Apr 09

Wir haben ja schon gesehen dass mit

System.out.println(datum.getTime());// unformatierte Ausgabe des gespeicherten Datums: 1302101663453

eine unformatierte Ausgabe der gespeicherten Zeit ausgegeben wird. Diese Zahlen stellen die Anzahl der Millisekunden seit dem 01.Januar 1970 dar; seit dem 01.Januar 1970 und dem gespeichertem Datum sind also  1302101663453 Millisekunden vergangen.

Wenn wir also ein spezielles Datum anlegen möchten, geht dies mit

Date datum3 = new Date(1302101663453L);

Tagged with:
Apr 07

schauen wir uns heute mal an, wie die Klasse Date funktioniert:

Date datum = new Date(); //Anlage des momentanen Datums
System.out.println(datum.getTime()); // unformatierte Ausgabe des gespeicherten Datums: 1302101663453
System.out.println(datum.toString()); // Ausgabe des gespeicherten Datums als String: Wed Apr 06 16:54:23 CEST 2011
datum.setTime(datum.getTime()+3600000); // Veränderung der gespeicherten Zeit durch Addition der Millisekunden
System.out.println(datum.toString()); //Ausgabe der neu gespeicherten Zeit: Wed Apr 06 17:54:23 CEST 2011

Tagged with:
Apr 05

Die nächste Zeit möchte ich ein paar Klassen vorstellen, deren Handhabung besonders gerne im SCJP abgefragt wird.  Wie immer fangen wir mit einer kleinen Übersicht an, ins Detail gehen wir dann die nächten Tage:

java.text.NumberFormat
Diese Klasse formatiert Nummern und Währungen.

java.util.Calendar
Diese Klasse bietet sehr viele Möglichkeiten, Datum und Zeit zu manipulieren.

java.text.DateFormat

Diese Klasse formatiert hauptsächlich Datum in verschiedene Ausgabeformate.

java.util.Date
Diese Klasse ist eher veraltet, kann aber als Brücke zwischen DateFormat und Calendar dienen.

java.util.Locale
Hier werden die Klassen DateFormat und NumberFormat zusammengeführt und erweitert. So kann z.B. das Datum 05.04.2011  in “Tuesday, April 5th 2010″ umgewandelt werden.

preload preload preload
http://www.wikio.de Blog Top Liste - by TopBlogs.de Blogverzeichnis - Blog Verzeichnis bloggerei.de Bloggeramt.de Software
Webbhotell Top Blogs