Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung - XPages => Thema gestartet von: Joghurt am 25.08.11 - 12:50:48

Titel: Anzeige von Zeitzonen
Beitrag von: Joghurt am 25.08.11 - 12:50:48
Guten Tag zusammen,

In einem klassischen Notesdokument habe ich ein (quasi standalone) Zeitzonenfeld. Ein User wählt einfach nur eine beliebige Zeitzone aus. Diesen ausgewählten Wert möchte ich gerne auf einer Xpage anzeigen lassen, read-only. Alles, was ich hinbekomme, ist ein unlesbarer String à la "Z=6$DO=1$DL=3 2 1 11 1 1$ZX=22$ZN=Central" oder "Z=-1$DO=1$DL=3 -1 1 10 -1 1$ZX=94$ZN=W. Europe".

Weiß jemand, wie ich das auf meiner XPage in ein userkompatibles Anzeigeformat bringe? Also zum Beispiel "GMT -6:00"?


Danke & liebe Grüße

Eliane
Titel: Re: Anzeige von Zeitzonen
Beitrag von: m3 am 25.08.11 - 13:18:58
Die ersten beiden Links zu http://lmgtfy.com/?q=display+timezone+on+xpages führt zu

Time Zones in XPages (http://www-10.lotus.com/ldd/ddwiki.nsf/dx/XPagesTimeZones.htm)

Tutorial: Introduction to XPages - Exercise 5 (http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Tutorial-Introduction-to-XPages-Exercise-5)

Hintergrundinfo:
Technote #1163045: How time zone information is stored in Notes/Domino (https://www-304.ibm.com/support/docview.wss?uid=swg21163045)
Titel: Re: Anzeige von Zeitzonen
Beitrag von: Joghurt am 25.08.11 - 13:29:57
Ja sicher, die Links habe ich auch schon gefunden. Clientseitig ist's aber kein Textfeld sondern ein Feld vom Typ TimeZone. Zum andern: Bloß keine Anpassung an die lokale Zeitzone! Ich muss die ausgewählte Zeitzone (lesbar) anzeigen. Ohne Uhrzeit.

Am I stupid? :-:
Titel: Re: Anzeige von Zeitzonen
Beitrag von: m3 am 25.08.11 - 16:08:50
Code
var res1 = currentDocument.getItemValueString("TimezoneText").split("$");
var TZcode = res1[0].split("=");
var tc = "Etc/GMT";
if( TZcode[1] > 0 ) {
	tc = tc + "+" + TZcode[1]; 
} else {
	tc = tc + TZcode[1];
}

var tz = TimeZone.getTimeZone( tc );
var texte = TimeZone.getAvailableIDs(tz.getRawOffset()).join("\r\n<li>");
tc + " &gt; <b>" + tz.getDisplayName(true, TimeZone.LONG) + 
"</b> -- Pick a name for the offset:\n<ul><li>" + texte + "</ul>";