Samstag, 16. Mai 2009

Java und die Zeit :)

Wer schon einmal mit C# und .Net gearbeitet hat, weiß wie einfach es ist ein Datum oder eine Zeit über die Klasse DateTime zu bekommen bzw. zu verändern.

Leider bietet Java hier zwar eine Klasse Date.
Aber die meisten Methoden davon sind im OpenJDK sowie in dem JDK vpn Sun als Depreched markiert.
Dies ist natürlich sehr dumm, da ich nun bei meiner jLog Klasse LogWriter nicht nur einfach einen Hinweis auf den aktuellen Status sondern auch die Zeit loggen will.

Damit das Problem mit der depreched Methode toLocaleString in Date begoben werden kann, gibt es einen einfachen Weg.
Dieser führt über die SimpleDateFormat klasse.

Ich habe folgende Methoden dafür angelegt.

private String getDateTimeString()
{
Date date = new Date();
SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
return df.format(date);
}

private String getLineString(String line, String hint)
{
String newLine = "[" + hint+ " " + getDateTimeString() + "]: " + line;
return newLine;
}

Wie man sieht, bekommt man per getDateTimeString genau das was uns sonst in C# bei dem DateTime-.ToString() bekommen würden.
Ich sollte vielleicht eine eigene DateTime Klasse für Java schreiben :p
Dies würde mir viele Sorgen und Probleme in zukünftigen Projekten nehmen ^^

Ansonsten kann man sich frei für jede Umsetzung entscheiden.
Meiner Meinung nach wurde es in C# mit der DateTime Klasse aber am besten gelöst.

Keine Kommentare: