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

adjust-dateTime-to-timezone XPath

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

Синтаксис

XPath 2.0

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

Ввод

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

Вывод

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

XPath 3.0

fn:adjust-dateTime-to-timezone($arg as xs:dateTime?) as xs:dateTime?
fn:adjust-dateTime-to-timezone($arg as xs:dateTime?, $timezone as xs:dayTimeDuration?) as xs:dateTime?

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

Пример

Таблица стилей демонстрирует различные варианты использования функции adjust-dateTime-to-timezone(). По умолчанию используется часовой пояс GMT-4, соответствующий восточному летнему времени (EDT, Eastern Daylight Time).

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

Результат:

Here are some tests of the adjust-dateTime-to-timezone() function:
My daughter was born on Friday, April 21, 1995, at 12:43:00
adjusted to GMT: Friday, April 21, 1995, at 5:43:00
adjusted to EST: Friday, April 21, 1995, at 12:43:00
adjusted to CST: Thursday, April 20, 1995, at 11:43:00
The current time in the default timezone is:
Thursday, November 16, 2006, at 3:34:29
adjusted to GMT: Thursday, November 16, 2006, at 8:34:29
adjusted to GMT-10: Wednesday, November 15, 2006, at 10:34:29

Часовой пояс по умолчанию считается частью контекста; значение по умолчанию может быть получено функцией implicit-timezone(). Также обратите внимание на использование функции format-dateTime() для форматирования значений xs:dateTime.

См. также