1. Главная
  2. Функции XPath
  3. adjust-time-to-timezone()

adjust-time-to-timezone XPath

Изменяет значение xs:time для заданного часового пояса.

Синтаксис

xs:time? adjust-time-to-timezone(xs:time?)
xs:time? adjust-time-to-timezone(xs:time?, $timezone as xs:dayTimeDuration?)

Ввод

Необязательное значение xs:time и необязательное значение xs:dayTimeDuration. Если значение xs:time не задано, возвращается пустая последовательность. Если значение xs:dayTimeDuration задано, xs:time адаптируется для содержащегося в нем часового пояса; в противном случае процессор XSLT использует часовой пояс по умолчанию, возвращаемый функцией implicit-timezone(). Наконец, если часовой пояс, определяемый xs:dayTimeDuration, является пустой последовательностью, функция возвращает xs:time с удаленной информацией часового пояса.

Вывод

Значение xs:time, адаптированное для заданного часового пояса.

Описание и примеры

Где определяется

XQuery 1.0 and XPath 2.0 Functions and Operators, раздел 10.7 «Timezone Adjustment Functions on Dates and Time Values».

Пример

Таблица стилей для тестирования функции adjust-time-to-timezone():

<?xml version="1.0"?>
<!-- adjust-time-to-timezone.xsl -->
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xsl:output method="text"/>
    <xsl:template match="/">
        <xsl:variable name="gmt" select="xs:dayTimeDuration('PT0H')"/>
        <xsl:variable name="est" select="xs:dayTimeDuration('-PT5H')"/>
        <xsl:variable name="cst" select="xs:dayTimeDuration('-PT6H')"/>
        <xsl:variable name="minusTen" select="xs:dayTimeDuration('-PT10H')"/>
        <xsl:variable name="LilysBirthday" as="xs:time" select="xs:time('00:43:00-05:00')"/>
        <xsl:variable name="format" select="'[h1]:[m01]:[s01] [P]'"/>
        <xsl:text>&#xA;Here are some tests of the </xsl:text>
        <xsl:text>adjust-time-to-timezone() function:&#xA;</xsl:text>
        <xsl:text>&#xA; My daughter was born at &#x9;</xsl:text>
        <xsl:value-of select="format-time($LilysBirthday, $format)"/>
        <xsl:text>&#xA; adjusted to GMT: &#x9;&#x9;</xsl:text>
        <xsl:value-of select="format-time(adjust-time-to-timezone($LilysBirthday, $gmt), $format)"/>
        <xsl:text>&#xA; adjusted to EST: &#x9;&#x9;</xsl:text>
        <xsl:value-of select="format-time(adjust-time-to-timezone($LilysBirthday, $est),    $format)"/>
        <xsl:text>&#xA; adjusted to CST: &#x9;&#x9;</xsl:text>
        <xsl:value-of select="format-time(adjust-time-to-timezone($LilysBirthday, $cst),    $format)"/>
        <xsl:text>&#xA;&#xA; </xsl:text>
        <xsl:text>The current time in the default timezone is: </xsl:text>
        <xsl:text>&#xA; &#x9;&#x9;&#x9;&#x9;</xsl:text>
        <xsl:value-of select="format-time(adjust-time-to-timezone(current-time()), $format)"/>
        <xsl:text>&#xA; adjusted to GMT: &#x9;&#x9;</xsl:text>
        <xsl:value-of select="format-time(adjust-time-to-timezone(current-time(), $gmt),    $format)"/>
        <xsl:text>&#xA; adjusted to GMT-10: &#x9;</xsl:text>
        <xsl:value-of select="format-time(adjust-time-to-timezone(current-time(), $minusTen),   $format)"/>
    </xsl:template>
</xsl:stylesheet>

Результат:

Here are some tests of the adjust-time-to-timezone() function:
My daughter was born at 12:43:00 a.m.
adjusted to GMT: 5:43:00 a.m.
adjusted to EST: 12:43:00 a.m.
adjusted to CST: 11:43:00 p.m.
The current time in the default timezone is:
3:35:44 a.m.
adjusted to GMT: 8:35:44 a.m.
adjusted to GMT-10: 10:35:44 p.m.

Обратите внимание на использование функции format-time() для вывода значений xs:time.

См. также

Определения функций adjust-date-to-timezone(), adjust-dateTime-to-time-zone() и format-time().