fn:adjust-date-to-timezone
(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 5.)
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
Kategorie: Datumsfunktionen – Zeitzone
Rückgabewert: Ein Datumswert xs:date
Aufruf/Argumente:
fn:adjust-date-to-timezone($datum?, $zeitzone?)
$datum:
Optional. Ein Datumswert xs:date. Wird kein Wert übergeben, so gibt die Funktion eine leere Sequenz zurück.
$zeitzone:
Optional. Das zweite Argument ist eine Zeitzonenangabe vom Typ xs:dayTimeDuration. Entfällt das Argument, so wird die im Auswertungskontext implizit vorhandene Zeitzonenangabe verwendet. Wird als zweites Argument die leere Sequenz übergeben, so wird eine vorhandene Zeitzonenangabe aus dem als erstem Argument übergebenen Datumswert entfernt, der übergebene Datumswert wird also lokalisiert (localized value).
Die Zeitzonenangabe darf einen Wert von -PT14H nicht unter- und einen Wert von PT14H nicht überschreiten. Andernfalls wird der Fehler »Invalid timezone value« (err:FODT0003) gemeldet.
Verwendungszweck:
Die Funktion verknüpft einen Datumswert xs:date mit einer Zeitzonenangabe, die entweder als zweites Argument übergeben wird oder sich implizit aus dem Kontext ergibt.
Beispiele:
Beispiel 1 – ohne Übergabe einer Zeitzonenkorrekturangabe:
fn:adjust-date-to-timezone(
xs:date("2007-07-07")
)
ergibt 2007-07-07-05:00
Hier wurde eine implizite Zeitzonenangabe von -5:00 angenommen, entsprechend -PT5H0M. Da kein zweites Argument übergeben wurde, wird die implizite Zeitzonenangabe mit dem Datumswert verknüpft und ausgegeben.
Beispiel 2 – ohne Übergabe einer Zeitzonenkorrekturangabe:
fn:adjust-date-to-timezone(
xs:date("2007-07-07-03:00")
)
ergibt 2007-07-07-05:00
Hier wurde eine implizite Zeitzonenangabe von -5:00 angenommen, entsprechend -PT5H0M. Die ursprüngliche Zeitzonenangabe lag bei -3:00. Wird ein Datumswert mit Zeitzonenangabe, aber ohne Zeitzonenkorrekturangabe übergeben, so wird die Zeitzonenangabe verworfen und durch die implizite Zeitzonenangabe ersetzt.
Beispiel 3 – mit Übergabe einer Zeitzonenkorrekturangabe:
fn:adjust-date-to-timezone(
xs:date("2007-07-07"),
xs:dayTimeDuration("-PT10H")
)
ergibt 2007-07-07-10:00
Wird ein Korrekturfaktor in Form einer Zeitzonenangabe als zweites Argument übergeben, so wird dieser mit dem Ergebnis verknüpft. Ein möglicherweise vorhandener impliziter Zeitzonenwert des Auswertungskontextes wird nicht berücksichtigt.
Beispiel 4 – mit Übergabe einer Zeitzonenkorrekturangabe:
fn:adjust-date-to-timezone(
xs:date("2007-07-07-03:00"),
xs:dayTimeDuration("-PT10H")
)
ergibt 2007-07-07-10:00
Besitzt das Datum bereits eine Zeitzonenangabe in Form eines Faktors, so wird dieser durch den übergebenen Zeitzonenfaktor ersetzt. Ein möglicherweise vorhandener impliziter Zeitzonenwert des Auswertungskontextes wird nicht berücksichtigt.
Beispiel 5 – mit Übergabe einer leeren Sequenz:
fn:adjust-date-to-timezone(
xs:date("2007-07-07-03:00"),
()
)
ergibt 2007-07-07
Besitzt das Datum eine Zeitzonenangabe und wird der Funktion als zweites Argument eine leere Sequenz übergeben, so wird die Zeitzonenangabe aus dem Datum entfernt. Ein möglicherweise vorhandener impliziter Zeitzonenwert des Auswertungskontextes wird nicht berücksichtigt.
Funktionsdefinition:
XPath 1.0:
Funktion nicht verfügbar
fn:adjust-date-to-timezone($arg as xs:date?)
as xs:date?
fn:adjust-date-to-timezone($arg as xs:date?,
$timezone as xs:dayTimeDuration?)
as xs:date?
Tipp der data2type-Redaktion: Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: |
Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
Galileo Press, Rheinwerkallee 4, 53227 Bonn