Преобразовать строку местного времени в UT C с помощью XSLT - PullRequest
1 голос
/ 30 января 2020

Я пытаюсь преобразовать строку местного времени и часовой пояс в UT C время. До сих пор я использую следующий код для форматирования:

<localtime>2019-12-02T06:46:24.000</localtime>
<timezone>America/Los_Angeles</timezone>

Следующее будет работать, только если в качестве часового пояса я буду использовать что-то вроде: PT0H

<xsl:variable name="ztime">
            <xsl:value-of select="adjust-dateTime-to-timezone($localTime, $timezone)"/>
</xsl:variable>

Есть ли способ получить смещение времени от имени часового пояса?

1 Ответ

1 голос
/ 30 января 2020

Некоторые процессоры XSLT могут распознавать имя часового пояса IANA (часовой пояс Олсона) в пятом ($ place) аргументе format-dateTime () - это было введено в таймфреймах XSLT 3.0. Вы не можете использовать это непосредственно в adjust-dateTime, но с соответствующими параметрами форматирования вы можете использовать format-dateTime () для преобразования часового пояса IANA в реальное смещение. Хотя переход на летнее время остается проблемой: в системе нет ничего, что указывало бы ваше местное время на летнее или зимнее время.

Если вы используете Saxon, тогда доступны некоторые расширения (требующие Saxon-PE или выше). См. saxon:adjust-to-civil-time() и saxon:in-summer-time().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...