Hallo @ all,
ja mich gibt es noch ;).
Ich komme auch gleich mit einer Frage. Ich habe ein Problem mit der Eingabe von Zeiten in einer Maske vom Web aus.
Im WebQuerySave Agenten steht dies:
DateTime start = (DateTime)context.getItemValue("time_start").elementAt(0);
DateTime end = (DateTime)context.getItemValue("time_end").elementAt(0);
System.out.println (start);
System.out.println (end);
System.out.println ("GMT: " + start.getGMTTime());
System.out.println ("GMT: " + end.getGMTTime());
System.out.println ("Local: " + start.getLocalTime());
System.out.println ("Local: " + end.getLocalTime());
Date dstart = start.toJavaDate();
Date dend = end.toJavaDate();
System.out.println (dstart);
System.out.println (dend);
auf der Serverkonsole wird nun das ausgegeben:
24.02.2006 08:44:07 HTTP JVM: 13:00:00
24.02.2006 08:44:07 HTTP JVM: 17:00:00
24.02.2006 08:44:07 HTTP JVM: GMT: 13:00:00
24.02.2006 08:44:07 HTTP JVM: GMT: 17:00:00
24.02.2006 08:44:07 HTTP JVM: Local: 13:00:00
24.02.2006 08:44:07 HTTP JVM: Local: 17:00:00
24.02.2006 08:44:07 HTTP JVM: Fri Feb 24 14:00:00 CET 2006
24.02.2006 08:44:07 HTTP JVM: Fri Feb 24 18:00:00 CET 2006
Im Serverdokument ist dies hier zu lesen: This server is using the OS's time zone and daylight saving time rules.
und das Betriebssystem ist entsprechend eingestellt und reagiert auf die Sommerzeit.
Hat irgendeiner eine Idee woran das liegt?
Gruss Thorsten.
In java.util.Calendar (und subklassen), java.util.Date und java.sql.Timestamp gibt es definitiv auch gotchas.
Z.B. scheint
Calendar cal = Calendar.getInstance();
zu anderen Ergebnissen zu kommen als
GregorianCalendar cal = (GregorianCalendar) Calendar.getInstance();
Das kann die Ursache für ein Problem sein, für das ich vor 2 Wochen Lotus Implementierung von Webservices verantwortlicht gemacht habe. Werd das dann aber noch komplett berichten.
Kann sein, dass meine Sicht für die Verantwortlichen der Java Spezifikation einfach zu eurozentrisch ist. Schliesslich gibts noch andere Kalender als den Gregorianischen.
Die sich daraus ergebenen Komplexitäten können aber echt verwirrend sein.
Man kann mal ein
System.out.println(Calendar.getInstance());
machen und staunen, was allein alles in der toString() Implementierung der entsprechenden Implementierungsklasse alles für mitteilenswert erachtet wird. :o