<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Briefe an die Unendlichkeit &#187; Java</title>
	<atom:link href="http://badu.gritsch.at/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://badu.gritsch.at</link>
	<description>Ein Weblog von Thomas Gritsch</description>
	<lastBuildDate>Thu, 15 Apr 2010 11:36:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Unerwartete Ergebnisse mit Javas DateFormat</title>
		<link>http://badu.gritsch.at/2007/06/16/unerwunschte-ergebnisse-mit-javas-datumsparser/</link>
		<comments>http://badu.gritsch.at/2007/06/16/unerwunschte-ergebnisse-mit-javas-datumsparser/#comments</comments>
		<pubDate>Sat, 16 Jun 2007 12:10:55 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.gritsch.at/thomas/archives/17</guid>
		<description><![CDATA[Java stellt für das Parsen und Formatieren von Datumseingaben die Klasse java.text.DateFormat bereit. 
Diese Klasse verwendet man in etwa so:

01  String date = "41.01.2007";
02  DateFormat df = DateFormat.getDateInstance(
         DateFormat.MEDIUM,
         Locale.GERMANY);
03  try {
04    Date [...]]]></description>
			<content:encoded><![CDATA[<p>Java stellt für das Parsen und Formatieren von Datumseingaben die Klasse <code><a href="http://java.sun.com/javase/6/docs/api/java/text/DateFormat.html">java.text.DateFormat</a></code> bereit. </p>
<p>Diese Klasse verwendet man in etwa so:</p>
<pre>
01  String date = "41.01.2007";
02  DateFormat df = DateFormat.getDateInstance(
         DateFormat.MEDIUM,
         Locale.GERMANY);
03  try {
04    Date d = df.parse(date);
05    System.out.println(df.format(d));
06  }
07  catch (ParseException ex) {
08    System.out.println("ungültiges Datum");
09  }
</pre>
<p>Jeder kann auf den ersten Blick sehen, dass der 41.01.2007 ein ungültiges Datum ist. Man möchte meinen, dass der Aufruf in Zeile 04 zu einer Exception führen muss. Falsch gedacht. Tatsächlich werden die &#8220;Ãœberschüssigen&#8221; Tage und Monate einfach zum Datum dazuaddiert. Aus dem 41.01.2007 wird so der 10.02.2007 und aus dem 4235.18.1900 wird folgerichtig der 03.01.1913.</p>
<p>Dieses Verhalten mag zwar in manchen Situationen recht praktisch sein, spätestens bei der Validierung von Benutzereingaben sieht die Sache anders aus. Wenn ein Benutzer ein solches ungültiges Datum eingibt, war es wahrscheinlich ein Tippfehler.</p>
<p>Schuld an dem Schlamassel ist der nachsichtige (engl.: lenient) Parser in <code>DateFormat</code>. Diese Nachsichtigkeit kann man dem Parser glücklicherweise austreiben, indem man die Methode <code><a href="http://java.sun.com/javase/6/docs/api/java/text/DateFormat.html#setLenient(boolean)">setLenient(boolean lenient)</a></code> mit dem Paramter <code>false</code> aufruft.</p>
<p>Und so funktioniert das Programm, wie erwartet:</p>
<pre>
01  String date = "41.01.2007";
02  DateFormat df = DateFormat.getDateInstance(
         DateFormat.MEDIUM,
         Locale.GERMANY);
03  df.setLenient(false);
04  try {
05    Date d = df.parse(date);
06    System.out.println(df.format(d));
07  }
08  catch (ParseException ex) {
09    System.out.println("ungültiges Datum");
10  }
</pre>
<p>Warum der Parser standardmäßig den nachsichtiges Parser verwendet bleibt offen.</p>
]]></content:encoded>
			<wfw:commentRss>http://badu.gritsch.at/2007/06/16/unerwunschte-ergebnisse-mit-javas-datumsparser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java 6 und die Desktop Integration</title>
		<link>http://badu.gritsch.at/2007/04/16/java-6-und-die-desktop-integration/</link>
		<comments>http://badu.gritsch.at/2007/04/16/java-6-und-die-desktop-integration/#comments</comments>
		<pubDate>Mon, 16 Apr 2007 11:05:08 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.gritsch.at/thomas/archives/8</guid>
		<description><![CDATA[Der Desktop ist, auch wenn es viele sicher anders sehen, noch lange nicht tot. Auch Sun hat den Glauben an den Desktop nicht verloren. Im aktuellen Java-Release finden sich einige Klassen zur Integration einiger Desktop-Funktionen in Java.
So ist es mit der Klasse java.awt.Desktop beispielsweise möglich den Standardbrowser des Betriebssystems zu starten und eine URL anzeigen [...]]]></description>
			<content:encoded><![CDATA[<p>Der Desktop ist, auch wenn es viele sicher anders sehen, noch lange nicht tot. Auch <a href="http://www.sun.com">Sun</a> hat den Glauben an den Desktop nicht verloren. Im aktuellen Java-Release finden sich einige Klassen zur Integration einiger Desktop-Funktionen in Java.</p>
<p>So ist es mit der Klasse <a href="http://java.sun.com/javase/6/docs/api/java/awt/Desktop.html"><code>java.awt.Desktop</code></a> beispielsweise möglich den Standardbrowser des Betriebssystems zu starten und eine URL anzeigen zu lassen.</p>
<p>Puristen werden zurecht aufschreien. Was hat eine Desktop-Integration in einer (pseudo)plattformunabhängigen Programmiersprache zu suchen? Die Antwort: Es ist eine sinnvolle Ergänzung. Trotzdem stellt sich die Frage ob es wirklich notwendig ist mit Desktop-Komponenten die ohnehin schon mit unzähligen APIs überladene Java Distributionen noch weiter aufzublähen.</p>
]]></content:encoded>
			<wfw:commentRss>http://badu.gritsch.at/2007/04/16/java-6-und-die-desktop-integration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

