Jun 22

Ändere den Code

DateFormat d = DateFormat.getDateInstance(DateFormat.SHORT);
d.setLocale(“EN”,”UK”);
Calendar c = new GregorianCalendar(1978,5,18);
System.out.println(d.format(c.getTime()));

so ab, dass er erfolgreich compliert und in englischer Schreibweise das heutige Datum  (6/20/11) ausgegeben wird.

Antwort/ answer

Apr 23

Abschliessend möchte ich noch ein paar Methoden der Klasse java.util.Locale vorstellen.

Gehen wir von unseren bekannten Definitionen aus:

Locale germany = new Locale(“de”, “DE”);
Locale englisch_uk = new Locale (“en”,”UK”);
Locale portugisisch_brasilien = new Locale (“pt”,”BR”);

Hier ein paar Länderbezogene Methoden:

System.out.println(germany.getCountry()); // Ausgabe des Länderkürzels: DE
System.out.println(germany.getDisplayCountry()); //
Ausgabe des Landes in der Default-Sprache: Deutschland
System.out.println(germany.getDisplayCountry(portugisisch_brasilien)); // Ausgabe des Landes in der angegebenen Sprache/ portugiesisch: Alemanha

System.out.println(englisch_uk.getLanguage()); // Ausgabe des Sprachkürzels: en
System.out.println(englisch_uk.getDisplayLanguage()); // Ausgabe der Sprache in der default-Sprache deutsch: Englisch
System.out.println(englisch_uk.getDisplayLanguage(portugisisch_brasilien));
// Ausgabe der Sprache in der angegebenen Sprache portugiesisch: inglês
System.out.println(englisch_uk.getDisplayLanguage(englisch_uk)); // Ausgabe der Sprache in der angegebenen Sprache englisch: English

Tagged with:
Apr 21

Heute möchte ich ein paar Tücken der Locale-Klasse erläutern.

Fangen wir mit der Definition einer chinesischen Locale an:

Date datum = new Date (123456789L);

Locale chinesisch = new Locale(“zh”,”CN”);
DateFormat df_china = DateFormat.getDateInstance(DateFormat.FULL,chinesisch);
System.out.println(df_china.format(datum));

Alles wird einwandfrei compiliert und ausgeführt, nur der Output ist etwas gewöhnungsbedürftig: 1970?1?2? ???

Dies daran, dass zwar die Klasse java.util.Locale diese Funktionen zur Verfügung stellt, unser System aber diese Zeichen nicht kennt.

Zusätzlich ist zu beachten, dass eine einmal festgesetzte Locale eines DateFormat nicht mehr geändert werden kann. Es existiert einfach keine Methode hierfür… also aufgepasst, falls im SCJP solche Fragen auftauchen :)

Apr 19

Mit dieser Klasse können Länder- und sprachspezifische Einstellungen vorgenommen werden.

Hier ein paar Beispiele:

Locale germany = new Locale(“de”, “DE”);
Locale englisch_uk = new Locale (“en”,”UK”);
Locale portugisisch_brasilien = new Locale (“pt”,”BR”);

als erstes wird die Sprache definiert, in unseren Beispielen deutsch, englisch und portugiesisch. Die zweite Variable sagt aus, auf welches Land sich diese Sprache bezieht, also deutsch in Deutschland, englisch in England und portugiesisch in Brasilien.

Diese Einstellungen müssen jetzt im DateFormat eingebettet werden, um diese Einstellungen vornehmen zu können:

DateFormat df_deutsch = DateFormat.getDateInstance(DateFormat.FULL,germany);
DateFormat df_uk = DateFormat.getDateInstance(DateFormat.FULL, englisch_uk);
DateFormat df_brasilien =DateFormat.getDateInstance(DateFormat.FULL,portugisisch_brasilien);

Es wird also nur noch das erzeugte Objekt bei der Erzeugung des DateFormat-Objektes hinzugefügt. Alles weitere wie gehabt:

Date datum = new Date (123456789L);

System.out.println(df_deutsch.format(datum)); //Deutsches Format: Freitag, 2. Januar 1970
System.out.println(df_uk.format(datum)); // Englisch-Großbritannien Format: Friday, January 2, 1970
System.out.println(df_brasilien.format(datum)); // Brasilianisch-portugisisches Format: Sexta-feira, 2 de Janeiro de 1970

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