XPath/XQuery-Funktionen: Datum und Uhrzeit
Die Datums- und Uhrzeit-Erweiterungsfunktionen von Altova können im Zusammenhang mit XPath- und XQuery-Ausdrücken verwendet werden und bieten zusätzliche Funktionalitäten für die Verarbeitung von Daten, die in Form von XML-Schema-Datums- und Uhrzeit-Datentypen zur Verfügung stehen.
Anmerkung zur Benennung von Funktionen und zur Anwendbarkeit der Sprache
Altova-Erweiterungsfunktionen können in XPath/XQuery-Ausdrücken verwendet werden. Dadurch stehen neben den Funktionen in der Standardbibliothek der XPath-, XQuery- und XSLT-Funktionen zusätzliche Funktionen zur Verfügung. •Um Altova-Erweiterungsfunktionen von Funktionen in der Standardbibliothek zu unterscheiden, wurde Altova-Erweiterungsfunktionen in dieser Dokumentation das Suffix [altova:] angehängt, z.B. add-years-to-date [altova:]. •Wenn Sie Altova-Erweiterungsfunktionen jedoch in Ihren XPath/XQuery-Ausdrücken verwenden, müssen Sie die Funktion genau wie jede andere XPath/XQuery-Standardfunktion ohne Präfix oder Suffix verwenden. Verwenden Sie eine Altova-Erweiterungsfunktion folgendermaßen: add-years-to-date(xs:date("2014-01-15"), 10).
|
altova:add-minutes-to-dateTime altova:add-seconds-to-dateTime altova:dateTime-from-epoch-no-TZ altova:hours-from-dateTimeDuration-accumulated altova:minutes-from-dateTimeDuration-accumulated |
[ Nach oben ]
Hinzufügen einer Zeitdauer zu xs:dateTime XP3.1 XQ3.1
Mit diesen Funktionen werden Zeitdauerwerte zu xs:dateTime hinzugefügt, bevor xs:dateTime zurückgegeben wird. Der Typ xs:dateTime hat das Format JJJJ-MM-TTZhh:mm:ss.sss. Es handelt sich hierbei um eine Verkettung des xs:date und xs:time Formats, getrennt durch den Buchstaben Z. Ein Zeitzonensuffix (wie z.B. +01:00) ist optional.
add-years-to-dateTime(DateTime als xs:dateTime, Years als xs:integer) als xs:dateTime XP3.1 XQ3.1 Fügt eine Zeitdauer in Jahren zu einem xs:dateTime Wert (siehe Beispiele unten) hinzu. Beim zweiten Argument handelt es sich um die Anzahl der Jahre, die zu dem im ersten Parameter angegebenen xs:dateTime Wert hinzugefügt werden sollen. Das Ergebnis ist vom Typ xs:dateTime.
|
add-months-to-dateTime(DateTime als xs:dateTime, Months als xs:integer) als xs:dateTime XP3.1 XQ3.1 Fügt eine Zeitdauer in Monaten zu einem xs:dateTime Wert (siehe Beispiele unten) hinzu. Beim zweiten Argument handelt es sich um die Anzahl der Monate, die zu dem im ersten Argument angegebenen xs:dateTime Wert hinzugefügt werden sollen. Das Ergebnis ist vom Typ xs:dateTime.
|
add-days-to-dateTime(DateTime als xs:dateTime, Days als xs:integer) als xs:dateTime XP3.1 XQ3.1 Fügt eine Zeitdauer in Tagen zu einem xs:dateTime Wert (siehe Beispiel unten) hinzu. Beim zweiten Argument handelt es sich um die Anzahl der Tage, die zu dem im ersten Argument angegebenen xs:dateTime Wert hinzugefügt werden sollen. Das Ergebnis ist vom Typ xs:dateTime.
|
add-hours-to-dateTime(DateTime als xs:dateTime, Hours als xs:integer) als xs:dateTime XP3.1 XQ3.1 Fügt eine Zeitdauer in Stunden zu einem xs:dateTime Wert (siehe Beispiel unten) hinzu. Beim zweiten Argument handelt es sich um die Anzahl der Stunden, die zu dem im ersten Argument angegebenen xs:dateTime Wert hinzugefügt werden sollen. Das Ergebnis ist vom Typ xs:dateTime.
|
add-minutes-to-dateTime(DateTime als xs:dateTime, Minutes als xs:integer) als xs:dateTime XP3.1 XQ3.1 Fügt eine Zeitdauer in Minuten zu einem xs:dateTime Wert (siehe Beispiele unten) hinzu. Beim zweiten Argument handelt es sich um die Anzahl der Minuten, die zu dem im ersten Argument angegebenen xs:dateTime Wert hinzugefügt werden sollen. Das Ergebnis ist vom Typ xs:dateTime.
|
add-seconds-to-dateTime(DateTime als xs:dateTime, Seconds als xs:integer) als xs:dateTime XP3.1 XQ3.1 Fügt eine Zeitdauer in Sekunden zu einem xs:dateTime Wert (siehe Beispiele unten) hinzu. Beim zweiten Argument handelt es sich um die Anzahl der Sekunden, die zu dem im ersten Argument angegebenen xs:dateTime Wert hinzugefügt werden sollen. Das Ergebnis ist vom Typ xs:dateTime.
|
[ Nach oben ]
Hinzufügen einer Zeitdauer zu xs:date XP3.1 XQ3.1
Mit diesen Funktionen werden Zeitdauerwerte zu xs:date hinzugefügt, bevor xs:date zurückgegeben wird. Der Typ xs:date hat das Format JJJJ-MM-TT.
add-years-to-date(Date als xs:date, Years als xs:integer) als xs:date XP3.1 XQ3.1 Fügt eine Zeitdauer in Jahren zu einem Datumswert hinzu. Beim zweiten Argument handelt es sich um die Anzahl der Jahre, die zu dem im ersten Argument angegebenen xs:date Wert hinzugefügt werden sollen. Das Ergebnis ist vom Typ xs:date.
|
add-months-to-date(Date als xs:date, Months als xs:integer) als xs:date XP3.1 XQ3.1 Fügt eine Zeitdauer in Monaten zu einem Datumswert hinzu. Beim zweiten Argument handelt es sich um die Anzahl der Monate, die zu dem im ersten Argument angegebenen xs:date Wert hinzugefügt werden sollen. Das Ergebnis ist vom Typ xs:date.
|
add-days-to-date(Date als xs:date, Days als xs:integer) als xs:date XP3.1 XQ3.1 Fügt eine Zeitdauer in Tagen zu einem Datumswert hinzu. Beim zweiten Argument handelt es sich um die Anzahl der Tage, die zu dem im ersten Argument angegebenen xs:date Wert hinzugefügt werden sollen. Das Ergebnis ist vom Typ xs:date.
|
[ Nach oben ]
Formatieren und Abrufen einer Zeitdauer XP3.1 XQ3.1
Mit diesen Funktionen wird ein Input xs:duration- oder xs:string-Wert geparst und ein xs:string- bzw. xs:duration-Wert zurückgegeben.
format-duration(Duration als xs:duration, Picture als xs:string) als xs:string XP3.1 XQ3.1 Formatiert eine Zeitdauer, die als erstes Argument bereitgestellt wird, gemäß einem Muster-String, der als zweites Argument bereitgestellt wird. Die Ausgabe ist ein Textstring, der dem Muster-String entsprechend formatiert ist.
|
parse-duration(InputString als xs:string, Picture als xs:string) als xs:duration XP3.1 XQ3.1 Erhält einen Pattern-String als erstes Argument und eine Muster-String als zweites Argument. Der Input-Strings wird auf Basis des Muster-Strings geparst und ein xs:duration wird zurückgegeben.
|
[ Nach oben ]
Hinzufügen einer Zeitdauer zu xs:time XP3.1 XQ3.1
Diese Funktionen fügen einen Zeitdauerwert zu xs:time hinzu und geben xs:time zurück. Der Typ xs:time entspricht in seiner lexikalischen Form hh:mm:ss.sss. Eine optionale Zeitzone kann angehängt werden. Der Buchstabe Z steht für Coordinated Universal Time (UTC). Alle anderen Zeitzonen werden in Form des Zeitunterschieds zur UTC im Format +hh:mm, oder -hh:mm dargestellt. Wenn kein Wert für die Zeitzone vorhanden ist, wird sie als unbekannt und nicht als UTC angenommen.
add-hours-to-time(Time als xs:time, Hours als xs:integer) als xs:time XP3.1 XQ3.1 Fügt eine Zeitdauer in Stunden zu einem Uhrzeitwert hinzu. Beim zweiten Argument handelt es sich um die Anzahl der Stunden, die zu dem im ersten Argument angegebenen xs:time Wert hinzugefügt werden sollen. Das Ergebnis ist vom Typ xs:time.
|
add-minutes-to-time(Time als xs:time, Minutes als xs:integer) als xs:time XP3.1 XQ3.1 Fügt eine Zeitdauer in Minuten zu einem xs:time Wert hinzu. Beim zweiten Argument handelt es sich um die Anzahl der Minuten, die zu dem im ersten Argument angegebenen xs:time Wert hinzugefügt werden sollen. Das Ergebnis ist vom Typ xs:time.
|
add-seconds-to-time(Time as xs:time, Minutes als xs:integer) als xs:time XP3.1 XQ3.1 Fügt eine Zeitdauer in Sekunden zu einem Uhrzeitwert hinzu. Beim zweiten Argument handelt es sich um die Anzahl der Sekunden, die zu dem im ersten Argument angegebenen xs:time Wert hinzugefügt werden sollen. Das Ergebnis ist vom Typ xs:time. Die Seconds Komponenten kann sich im Bereich von 0 bis 59.999 befinden.
|
[ Nach oben ]
Entfernen der Zeitzone aus date/time-Datentypen XP3.1 XQ3.1
Diese Funktionen entfernen die Zeitzone aus den aktuellen xs:dateTime, xs:date bzw. xs:time Werten. Beachten Sie, dass im Unterschied zu xs:dateTime bei xs:dateTimeStamp die Zeitzone erforderlich ist (während sie im ersteren Fall optional ist). Das Format eines xs:dateTimeStamp Werts lautet daher: JJJJ-MM-TTZhh:mm:ss.sss±hh:mm. oder JJJJ-MM-TTZhh:mm:ss.sssZ. Wenn das Datum und die Uhrzeit von der Systemuhr als xs:dateTimeStamp ausgelesen wird, können Sie die Zeitzone, falls erforderlich, mit der Funktion current-dateTime-no-TZ() entfernen.
current-date-no-TZ() als xs:date XP3.1 XQ3.1 Die Funktion hat kein Argument. Sie entfernt die Zeitzone aus dem current-date() Wert (welcher das aktuelle Datum laut Systemuhr ist) und gibt einen xs:date Wert zurück.
|
current-dateTime-no-TZ() als xs:dateTime XP3.1 XQ3.1 Die Funktion hat kein Argument. Sie entfernt die Zeitzone aus dem current-dateTime() Wert (welcher das aktuelle Datum und die aktuelle Uhrzeit laut Systemuhr ist) und gibt einen xs:dateTime Wert zurück.
|
current-time-no-TZ() als xs:time XP3.1 XQ3.1 Die Funktion hat kein Argument. Sie entfernt die Zeitzone aus dem current-time() Wert (welcher die aktuelle Uhrzeit laut Systemuhr ist) und gibt einen xs:time Wert zurück.
|
date-no-TZ(InputDate as xs:date) als xs:date XP3.1 XQ3.1 Diese Funktion verwendet ein xs:date Argument, entfernt den Zeitzonenteil daraus und gibt einen xs:date Wert zurück. Beachten Sie, dass das Datum nicht geändert wird..
|
dateTime-no-TZ(InputDateTime als xs:dateTime) als xs:dateTime XP3.1 XQ3.1 Diese Funktion verwendet ein xs:dateTime Argument, entfernt den Zeitzonenteil daraus und gibt einen xs:dateTime Wert zurück. Beachten Sie, dass weder Datum noch Uhrzeit geändert werden.
|
time-no-TZ(InputTime als xs:time) als xs:time XP3.1 XQ3.1 Diese Funktion verwendet ein xs:time Argument, entfernt den Zeitzonenteil daraus und gibt einen xs:time Wert zurück. Beachten Sie, dass die Uhrzeit nicht geändert wird.
|
[ Nach oben ]
Rückgabe der Anzahl von Tagen, Stunden, Minuten, Sekunden anhand einer Zeitdauer XP3.1 XQ3.1
Diese Funktionen geben die Anzahl der Tage in einem Monat bzw. die Anzahl der Stunden, Minuten und Sekunden anhand einer Zeitdauer zurück.
days-in-month(Year als xs:integer, Month als xs:integer) als xs:integer XP3.1 XQ3.1 Gibt die Anzahl der Tage im angegebenen Monat zurück. Der Monat wird mit Hilfe der Argumente Year und Month angegeben.
|
hours-from-dayTimeDuration-accumulated(DayAndTime als xs:duration) als xs:integer XP3.1 XQ3.1 Gibt die Gesamtzahl der Stunden in der durch das Argument DayAndTime bereitgestellten Zeitdauer (vom Typ xs:duration) zurück. Die Stunden in den Komponenten Day und Time werden addiert, um ein Ergebnis in Form einer Ganzzahl zu erhalten. Nur für volle 60 Minuten wird eine neue Stunde berechnet. Negative Zeitdauerergebnisse ergeben einen negativen Stundenwert.
|
minutes-from-dayTimeDuration-accumulated(DayAndTime als xs:duration) als xs:integer XP3.1 XQ3.1 Gibt die Gesamtzahl der Minuten in der durch das Argument DayAndTime bereitgestellten Zeitdauer (vom Typ xs:duration) zurück. Die Minuten in den Komponenten Day und Time werden addiert, um ein Ergebnis in Form einer Ganzzahl zu erhalten. Negative Zeitdauerergebnisse ergeben einen negativen Minutenwert.
|
seconds-from-dayTimeDuration-accumulated(DayAndTime als xs:duration) als xs:integer XP3.1 XQ3.1 Gibt die Gesamtzahl der Sekunden in der durch das Argument DayAndTime bereitgestellten Zeitdauer (vom Typ xs:duration) zurück. Die Sekunden in den Komponenten Day und Time werden addiert, um ein Ergebnis in Form einer Ganzzahl zu erhalten. Negative Zeitdauerergebnisse ergeben einen negativen Sekundenwert.
|
Rückgabe des Wochentages anhand von xs:dateTime oder xs:date XP3.1 XQ3.1
Diese Funktionen geben anhand des xs:dateTime oder xs:date Werts den Wochentag in Form einer Ganzzahl zurück. Die Tage der Woche sind (im amerikanischen Format) von 1 bis 7 nummeriert, wobei Sonntag=1. Im europäischen Format beginnt die Woche am Montag (=1). Das amerikanische Format, in dem Sonntag=1, kann mittels der Ganzzahl 0 definiert werden, wenn das Format mittels einer Ganzzahl angegeben werden kann.
weekday-from-dateTime(DateTime als xs:dateTime) als xs:integer XP3.1 XQ3.1 Erhält ein Datum mit einer Uhrzeit als einziges Argument und gibt den Tag der Woche dieses Datums in Form einer Ganzzahl zurück. Die Wochentage sind beginnend mit Sonntag=1 nummeriert. Wenn das europäische Format benötigt wird (wo Montag=1), verwenden Sie die andere Signatur dieser Funktion (siehe nächste Signatur unten).
weekday-from-dateTime(DateTime als xs:dateTime, Format als xs:integer) als xs:integer XP3.1 XQ3.1 Erhält ein Datum mit einer Uhrzeit als erstes Argument und gibt den Tag der Woche dieses Datums in Form einer Ganzzahl zurück. Wenn das zweite (Integer)-Argument 0 ist, werden die Wochentage beginnend mit Sonntag=1 von 1 bis 7 nummeriert. Wenn das zweite Argument eine andere Ganzzahl als 0 ist, so ist Montag=1. Wenn es kein zweites Argument gibt, wird die Funktion gelesen, als ob sie die andere Signatur dieser Funktion hätte (siehe vorherige Signatur).
|
weekday-from-date(Date als xs:date) als xs:integer XP3.1 XQ3.1 Erhält ein Datum als einziges Argument und gibt den Tag der Woche dieses Datums in Form einer Ganzzahl zurück. Die Wochentage sind beginnend mit Sonntag=1 nummeriert. Wenn das europäische Format benötigt wird (wo Montag=1), verwenden Sie die andere Signatur dieser Funktion (siehe nächste Signatur unten).
weekday-from-date(Date als xs:date, Format als xs:integer) als xs:integer XP3.1 XQ3.1 Erhält ein Datum als erstes Argument und gibt den Tag der Woche dieses Datums in Form einer Ganzzahl zurück. Wenn das zweite Argument (Format) 0 ist, werden die Wochentage beginnend mit Sonntag=1 von 1 bis 7 nummeriert. Wenn das zweite Argument eine andere Ganzzahl als 0 ist, so ist Montag=1. Wenn es kein zweites Argument gibt, wird die Funktion gelesen, als ob sie die andere Signatur dieser Funktion hätte (siehe vorherige Signatur).
|
[ Nach oben ]
Rückgabe der Wochennummer anhand von xs:dateTime oder xs:date XP2 XQ1 XP3.1 XQ3.1
Diese Funktionen geben anhand von xs:dateTime oder xs:date die Wochennummer als Ganzzahl zurück. Die Wochennummer steht in den Kalenderformaten US, ISO/European und Islamic zur Verfügung. Die Wochennummerierung unterscheidet sich in diesen Kalenderformaten, da die Woche in diesen Formaten an unterschiedlichen Tagen beginnt (Im Format US am Sonntag, im Format ISO/European am Montag und im Format Islamic am Samstag).
weeknumber-from-date(Date als xs:date, Calendar als xs:integer) als xs:integer XP2 XQ1 XP3.1 XQ3.1 Gibt die Wochennummer des bereitgestellten Date Arguments als Ganzzahl zurück. Das zweite Argument (Calendar) definiert das zu verwendende Kalendersystem. Unterstützte Calendar Werte sind:
• 0 = US-Kalender (Woche beginnt am Sonntag) • 1 = ISO-Standard, Europäischer Kalender (Woche beginnt am Montag) • 2 = Islamischer Kalender (Woche beginnt am Samstag)
Der Standardwert ist 0.
|
weeknumber-from-dateTime(DateTime als xs:dateTime, Calendar als xs:integer) als xs:integer XP2 XQ1 XP3.1 XQ3.1 Gibt die Wochennummer des bereitgestellten DateTime Arguments als Ganzzahl zurück. Das zweite Argument (Calendar) definiert das zu verwendende Kalendersystem. Unterstützte Calendar Werte sind:
• 0 = US-Kalender (Woche beginnt am Sonntag) • 1 = ISO-Standard, Europäischer Kalender (Woche beginnt am Montag) • 2 = Islamischer Kalender (Woche beginnt am Samstag)
Der Standardwert ist 0.
|
[ Nach oben ]
Erstellen des Datums-, Uhrzeit- oder Zeitdauer-Datentyps anhand der lexikalischen Komponenten der einzelnen Typen XP3.1 XQ3.1
Die Funktionen erhalten die lexikalischen Komponenten des xs:date, xs:time oder xs:duration-Datentyps als Input-Argumente und kombinieren diese zum entsprechenden Datentyp.
build-date(Year als xs:integer, Month als xs:integer, Date als xs:integer) als xs:date XP3.1 XQ3.1 Das erste, zweite und dritte Argument steht für das Jahr, bzw. den Monat bzw. das Datum. Sie werden zu einem Wert vom Typ xs:date kombiniert. Die Werte der Ganzzahlen müssen sich innerhalb des korrekten Bereichs dieses jeweiligen Datumsteils befinden. So sollte z.B. das zweite Argument nicht größer als 12 sein.
|
build-time(Hours als xs:integer, Minutes als xs:integer, Seconds als xs:integer) als xs:time XP3.1 XQ3.1 Das erste, zweite und dritte Argument steht für die Stunde (0 bis 23), bzw. die Minuten (0 bis 59) bzw. die Sekunden (0 bis 59). Sie werden zu einem Wert von Typ xs:time kombiniert. Die Werte der Ganzzahlen müssen sich innerhalb des korrekten Bereichs dieses jeweiligen Uhrzeitteils befinden. So sollte z.B. der zweite Parameter nicht größer als 59 sein. Um eine Zeitzone zum Wert hinzuzufügen, verwenden Sie die andere Signatur der Funktion (siehe nächste Signatur).
build-time(Hours als xs:integer, Minutes als xs:integer, Seconds als xs:integer, TimeZone als xs:string) als xs:time XP3.1 XQ3.1 Das erste, zweite und dritte Argument steht für die Stunde (0 bis 23), bzw. die Minuten (0 bis 59) bzw. die Sekunden (0 bis 59). Das vierte Argument ist ein String, der den Zeitzonenteil des Werts liefert. Die vier Argumente werden zu einem Wert vom Typ xs:time kombiniert. Die Werte der Ganzzahlen müssen sich innerhalb des korrekten Bereichs dieses jeweiligen Uhrzeitteils befinden. So sollte z.B. das zweite Argument (Minuten) nicht größer als 59 sein.
|
build-duration(Years als xs:integer, Months als xs:integer) als xs:yearMonthDuration XP3.1 XQ3.1 Setzt aus zwei Argumenten einen Wert vom Typ xs:yearMonthDuration zusammen. Das erste Argument liefert den Jahr-Teil des Zeitdauerwerts, während das zweite Argument den Monat-Teil liefert. Wenn der zweite Parameter (Monate) größer oder gleich 12 ist, so wird die Ganzzahl durch 12 dividiert. Der Quotient wird zum ersten Argument hinzugefügt, um den Jahr-Teil des Zeitdauerwerts zu liefern, während der Rest (der Division) den Monat-Teil liefert. Eine Beschreibung zur Erstellung einer Zeitdauer vom Typ xs:dayTimeDuration finden Sie in der nächsten Signatur.
build-duration(Days als xs:integer, Hours als xs:integer, Minutes als xs:integer, Seconds als xs:integer) als xs:dayTimeDuration XP3.1 XQ3.1 Kombiniert vier Argumente zu einem Wert vom Typ xs:dayTimeDuration. Das erste Argument liefert den Tage-Teil, das zweite die Stunden, das dritte die Minuten und das vierte die Sekunden des Zeitdauerwerts. Die einzelnen Uhrzeitparameter werden in den entsprechenden Wert für die nächsthöhere Einheit konvertiert und das Ergebnis wird zur Berechnung der Gesamtdauer weitergegeben. So werden z.B. 72 Sekunden in 1M(inute)12S(ekunden) konvertiert. Dieser Wert wird zur Berechnung der Gesamtdauer weitergegeben. Um eine Zeitdauer vom Typ xs:yearMonthDuration zu berechnen, verwenden Sie die vorherige Signatur.
|
[ Nach oben ]
Konstruieren von Datum, Datum und Uhrzeit und Zeit-Datentypen anhand des String-Input XP2 XQ1 XP3.1 XQ3.1
Diese Funktionen erhalten Strings als Argumente und konstruieren anhand dieser die Datentypen xs:date, xs:dateTime oder xs:time. Der String wird anhand eines bereitgestellten Pattern-Arguments nach Komponenten des Datentyps analysiert.
parse-date(Date als xs:string, DatePattern als xs:string) als xs:date XP2 XQ1 XP3.1 XQ3.1 Gibt den Input-String Date als xs:date Wert zurück. Das zweite Argument DatePattern definiert das Pattern (die Komponentensequenz) des Input-String. DatePattern wird durch die unten aufgelisteten Komponenten-Specifier beschrieben. Als Komponententrennzeichen kann jedes beliebige Zeichen verwendet werden. Siehe Beispiele unten.
Das Pattern in DatePattern muss mit dem Pattern in Date übereinstimmen. Da die Ausgabe vom Typ xs:date ist, hat sie immer das lexikalische Format YYYY-MM-DD.
|
parse-dateTime(DateTime als xs:string, DateTimePattern als xs:string) als xs:dateTime XP2 XQ1 XP3.1 XQ3.1 Gibt den Input-String DateTime als xs:dateTime Wert zurück. Das zweite Argument DateTimePattern definiert das Pattern (die Komponentensequenz) des Input-String. DateTimePattern wird durch die unten aufgelisteten Komponenten-Specifier beschrieben. Als Komponententrennzeichen kann jedes beliebige Zeichen verwendet werden. Siehe Beispiele unten.
Das Pattern in DateTimePattern muss mit dem Pattern in DateTime übereinstimmen. Da die Ausgabe vom Typ xs:dateTime ist, hat sie immer das lexikalische Format YYYY-MM-DDTHH:mm:ss.
|
parse-time(Time als xs:string, TimePattern als xs:string) als xs:time XP2 XQ1 XP3.1 XQ3.1 Gibt den Input-String Time als xs:time Wert zurück. Das zweite Argument TimePattern definiert das Pattern (die Komponentensequenz) des Input-String. TimePattern wird durch die unten aufgelisteten Komponenten-Specifier beschrieben. Als Komponententrennzeichen kann jedes beliebige Zeichen verwendet werden. Siehe Beispiele unten.
Das Pattern in TimePattern muss mit dem Pattern in Time übereinstimmen. Da die Ausgabe vom Typ xs:Time ist, hat sie immer das lexikalische Format HH:mm:ss.
|
[ Nach oben ]
Funktionen zur Berechnung des Alters XP3.1 XQ3.1
Diese Funktionen geben das Alter berechnet (i) anhand von einem Input-Argument und dem aktuellen Datum oder (ii) anhand zweier Input-Argumentdaten zurück. Die Funktion altova:age gibt das Alter in Jahren zurück, die Funktion altova:age-details gibt das Alter als Sequenz von drei Ganzzahlen zurück, die die Jahre, Monate und Tage des Alters angeben.
age(StartDate als xs:date) als xs:integer XP3.1 XQ3.1 Gibt eine Ganzzahl zurück, die das Alter eines Objekts in Jahren angibt. Berechnet wird das Alter anhand des durch das Argument gelieferten Startdatums endend mit dem aktuellen Datum (laut Systemuhr). Wenn das Input-Argument eines Datums größer oder gleich einem Jahr in der Zukunft ist, ist der Rückgabewert negativ. Beispiele
age(StartDate als xs:date, EndDate als xs:date) als xs:integer XP3.1 XQ3.1 Gibt eine Ganzzahl zurück, die das Alter eines Objekts in Jahren angibt. Berechnet wird das Alter anhand des durch das erste Argument gelieferten Startdatums endend mit dem als zweites Datum gelieferten Enddatum. Wenn das erste Argument ein Jahr oder mehr nach dem zweiten Argument liegt, ist der Rückgabewert negativ.
|
age-details(InputDate als xs:date) als (xs:integer)* XP3.1 XQ3.1 Gibt drei Ganzzahlen zurück. Dabei handelt es sich um die Jahre, Monate bzw. Tage zwischen dem als Argument angegebenen Datum und dem aktuellen Datum (laut Systemuhr). Die Summe der zurückgegebenen years+months+days gibt zusammen die Gesamtzeitdifferenz zwischen den beiden Datumswerten (dem Input-Datum und dem aktuellen Datum) an. Das Input-Datum hat eventuell einen Wert, der vor oder nach dem aktuellen Datum liegt, doch wird dies nicht aus dem Vorzeichen der Rückgabewerte ersichtlich; die Rückgabewerte sind immer positiv.
age-details(Date-1 als xs:date, Date-2 als xs:date) als (xs:integer)* XP3.1 XQ3.1 Gibt drei Ganzzahlen zurück. Dabei handelt es sich um die Jahre, Monate bzw. Tage zwischen den beiden Argumentdaten. Die Summe der zurückgegebenen years+months+days gibt zusammen die Gesamtzeitdifferenz zwischen den beiden Input-Datumswerten an. Es ist unerheblich, ob das frühere oder spätere Datum als erstes Argument angegeben wird. Die Rückgabewerte geben nicht an, ob das Input-Datum vor oder nach dem aktuellen Datum liegt. Die Rückgabewerte sind immer positiv.
|
[ Nach oben ]
Epochen-Zeit (Unix-Zeit)-Funktionen XP3.1 XQ3.1
Die Epochenzeit ist ein auf Unix-Systemen verwendetes Zeitsystem. Darin wird jeder Zeitpunkt als Anzahl der Sekunden seit 00:00:00 UTC des 1. Januar 1970 definiert. Diese Epochenzeitfunktionen konvertieren xs:dateTime-Werte in Epochenzeitwerte und umgekehrt.
dateTime-from-epoch(Epoch als xs:decimal als xs:dateTime XP3.1 XQ3.1 Die Epochenzeit ist ein auf Unix-Systemen verwendetes Zeitsystem. Darin wird jeder Zeitpunkt als Anzahl der Sekunden seit 00:00:00 UTC des 1. Januar 1970 definiert. Die Funktion dateTime-from-epoch gibt das xs:dateTime-Äquivalent einer Epochenzeit zurück, passt die lokale Zeitzone an und inkludiert die Zeitzoneninformation im Ergebnis.
Die Funktion erhält ein xs:decimal-Argument und gibt einen xs:dateTime-Wert, der einen ZZ-Teil (Zeitzone) enthält, zurück. Das Ergebnis wird durch Berechnung des UTC dateTime-Äquivalents der Epochenzeit und Hinzufügen der (anhand der Systemuhr ermittelten) lokalen Zeitzone ermittelt. Wenn die Funktion z.B. auf einem Rechner, der in der Zeitzone +01:00 (relativ zur UTC) konfiguriert wurde, ausgeführt wird, so wird nach Berechnung des UTC-dateTime-Äquivalents eine Stunde zum Ergebnis addiert. Auch die Zeitzoneninformation, die einen optionalen lexikalischen Bestandteil des xs:dateTime-Ergebnisses bildet, wird im dateTime-Ergebnis ausgegeben. Vergleichen Sie dieses Ergebnis mit dem von dateTime-from-epoch-no-TZ und auch der Funktion epoch-from-dateTime.
|
dateTime-from-epoch-no-TZ(Epoch als xs:decimal als xs:dateTime XP3.1 XQ3.1 Die Epochenzeit ist ein auf Unix-Systemen verwendetes Zeitsystem. Darin wird jeder Zeitpunkt als Anzahl der Sekunden seit 00:00:00 UTC des 1. Januar 1970 definiert. Die Funktion dateTime-from-epoch-no-TZ gibt das xs:dateTime-Äquivalent einer Epochenzeit zurück, passt es an die lokale Zeitzone an, inkludiert die Zeitzoneninformation jedoch nicht im Ergebnis.
Die Funktion erhält ein xs:decimal-Argument und gibt einen xs:dateTime-Wert, der keinen ZZ-Teil (Zeitzone) enthält, zurück. Das Ergebnis wird durch Berechnung des UTC dateTime-Äquivalents der Epochenzeit und Hinzufügen der (anhand der Systemuhr ermittelten) lokalen Zeitzone ermittelt. Wenn die Funktion z.B. auf einem Rechner, der in der Zeitzone +01:00 (relativ zur UTC) konfiguriert wurde, ausgeführt wird, so wird nach Berechnung des UTC-dateTime-Äquivalents eine Stunde zum Ergebnis addiert. Die Zeitzoneninformation, die einen optionalen lexikalischen Bestandteil des xs:dateTime-Ergebnisses bildet, wird nicht im dateTime-Ergebnis ausgegeben. Vergleichen Sie dieses Ergebnis mit dem von dateTime-from-epoch und auch der Funktion epoch-from-dateTime.
|
epoch-from-dateTime(dateTimeValue als xs:dateTime) als xs:decimal XP3.1 XQ3.1 Die Epochenzeit ist ein auf Unix-Systemen verwendetes Zeitsystem. Darin wird jeder Zeitpunkt als Anzahl der Sekunden seit 00:00:00 UTC des 1. Januar 1970 definiert. Die Funktion epoch-from-dateTime gibt das Epochenzeitäquivalent von xs:dateTime zurück, welches als Argument der Funktion bereitgestellt wird. Beachten Sie, dass Sie den xs:dateTime-Wert eventuell explizit konstruieren müssen. Der angegebene xs:dateTime-Wert kann den optionalen ZZ (Zeitzonen)-Wert enthalten, muss ihn aber nicht enthalten.
Unabhängig davon, ob der Zeitzonenteil als Bestandteil des Arguments angegeben wird oder nicht, wird der (anhand der Systemuhr ermittelte) lokale Zeitzonenunterschied vom angegebenen dateTimeValue-Argument subtrahiert. Dadurch wird das UTC-Zeit-Äquivalent erzeugt, anhand dessen die entsprechende Epochenzeit berechnet wird. Wenn die Funktion z.B. auf einem Rechner, der für die Zeitzone +01:00 (relativ zur UTC) konfiguriert wurde, ausgeführt wird, so wird vor Berechnung des Epochenzeitwerts eine Stunde vom angegebenen dateTimeValue subtrahiert. Siehe dazu auch die Funktion dateTime-from-epoch.
|
[ Nach oben ]