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

adjust-date-to-timezone XPath

Функция adjust-date-to-timezone изменяет значение xs:date для заданного часового пояса.

Синтаксис

XPath 2.0

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

Ввод

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

Вывод

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

XPath 3.0

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?

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

Пример

Таблица стилей, демонстрирующая различные варианты использования функции adjust-date-to-timezone():

<?xml version="1.0"?>
<!-- adjust-date-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:date" select="xs:date('1995-04-21')"/>
        <xsl:variable name="format" select="'[FNn], [MNn] [D1], [Y0001]'"/>
        <xsl:text>Here are some tests of the </xsl:text>
        <xsl:text>adjust-date-to-timezone() function:</xsl:text>
        <xsl:text> My daughter was born on  </xsl:text>
        <xsl:value-of select="format-date($LilysBirthday, $format)"/>
        <xsl:text> adjusted to GMT:         </xsl:text>
        <xsl:value-of select="format-date( adjust-date-to-timezone($LilysBirthday, $gmt), $format)"/>
        <xsl:text> adjusted to EST:         </xsl:text>
        <xsl:value-of select="format-date(adjust-date-to-timezone($LilysBirthday, $est),$format)"/>
        <xsl:text> adjusted to CST:         </xsl:text>
        <xsl:value-of select="format-date(adjust-date-to-timezone($LilysBirthday, $cst),$format)"/>
        <xsl:text> </xsl:text>
        <xsl:text>The current date in the default timezone is: </xsl:text>
        <xsl:text>              </xsl:text>
        <xsl:value-of select="format-date(adjust-date-to-timezone(current-date()),$format)"/>
        <xsl:text> adjusted to GMT:         </xsl:text>
        <xsl:value-of select="format-date(adjust-date-to-timezone(current-date(), $gmt),$format)"/>
        <xsl:text> adjusted to GMT-10:  </xsl:text>
        <xsl:value-of select="format-date(adjust-date-to-timezone(current-date(), $minusTen),$format)"/>
    </xsl:template>
</xsl:stylesheet>

Результат:

Here are some tests of the adjust-date-to-timezone() function:
My daughter was born on Friday, April 21, 1995
adjusted to GMT: Friday, April 21, 1995
adjusted to EST: Friday, April 21, 1995
adjusted to CST: Friday, April 21, 1995
The current date in the default timezone is:
Thursday, November 16, 2007
adjusted to GMT: Thursday, November 16, 2007
adjusted to GMT-10: Wednesday, November 15, 2007

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

См. также