| 

.NET C# Java Javascript Exception

4
Wie bekomme ich eine DateTime Objekt mit der aktuellen Uhrzeit/Datum unter
Berücksichtigung der richtigen Zeitzone?
14.07.2009
Harry 120 1 2 4
5 Antworten
5
hmmm, layout? zweiter versuch:

Calendar calendar = new GregorianCalendar();
Format format = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);

Date date = calendar.getTime();
Time time = new Time(date.getTime());

System.out.println(calendar.getTimeZone().getDisplayName()); // Zentraleuropäische Zeit
System.out.println(format.format(date)); // 10. Juli 2009 01:09:52 CEST
System.out.println(time.toString()); // 01:09:52
17.07.2009
Fancy 424 1 2
1
Ich meine Date ;P

Danke dir. Ich habe unter http://openbook.galileocomputing.de/javainsel8/javainsel_13_006.htm#mj82434bc9cc21e495345f4761e7142d29 auch etwas gefunden, dass der Standard Konstruktor von GregorianCalendar manchmal die falsche Zeitzone setzt. Was tun? immer explizit setzen? Ist dann ja nicht besonders Wartungsfreundlich...
Harry 17.07.2009
Ich würde in den sourcen immer nur new GregorianCalendar(); (also ohne Parameter) nutzen. Meines Wissens taucht das Problem mit der falschen Zeitzone hauptsächlich dann auf, wenn sie schon im Betriebsystem falsch gesetzt worden ist. In dem Fall kannst Du die Zeitzone ja explizit per Parameter an die VM übergeben: "java(w) -Duser.timezone=Zeitzone Programm". (Also bei uns: "java(w) -Duser.timezone=CET Programm")
Fancy 17.07.2009
4
1. Einen
java.util.Calendar
holt sich über
Calendar.getInstance()
.
2. Dieser Funktion kann man sowohl ein Locale als auch eine TimeZone mitgeben.
Calendar.getInstance(Locale aLocale)
Calendar.getInstance(TimeZone timezone)

3. Hat man das getan, kann man über die Funktion
getTime()
die aktuelle Zeit unter Berücksichtigung des Locale und/oder TimeZone bekommen.
Calendar.getInstance(TimeZone timezone).getTime()
07.09.2009
tobias 169 1 2
2
Auch hier darf nachtürlch der Hinweis auf Joda Time nicht fehlen:
http://joda-time.sourceforge.net/
Ein exzellenter Ersatz für die Standard-Date/Time-Klassen von Java.
07.09.2009
keuleJ 79 1 1
2
Wenn Du die aktuelle Zeit mit der Standard-JVM-Zeitzone bekommen möchtest, reicht es eigentlich ganz simpel
Date now = new Date();
aufzurufen. mit
Java.util.Date

Man sollte nur prüfen, ob die vom Betriebssystem erkannte Zeitzone auch die gewünschte ist, aber das dürfte zu 99 % so sein.
08.09.2009
stevetc 111 3
-1
Welche Klasse meinst Du genau?
Die Java 6 SE API enthält kein DateTime...

Falls Du Date / Time meinst:

<code>
Calendar calendar = new GregorianCalendar();<br>
Format format = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);<br>
<br>
Date date = calendar.getTime();<br>
Time time = new Time(date.getTime());<br>
<br>
System.out.println(calendar.getTimeZone().getDisplayName()); // Zentraleuropäische Zeit <br>
System.out.println(format.format(date)); // 10. Juli 2009 01:09:52 CEST<br>
System.out.println(time.toString()); // 01:09:52<br>
</code>
17.07.2009
Fancy 424 1 2

Stelle deine Java-Frage jetzt!