Как получить формат даты RFC1123 для текущей даты и времени, используя XSLT 2.0 - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь получить текущую дату и время в формате даты RFC1123 в XSLT.Кто-нибудь пробовал это с помощью XSL2.0?

Я видел код для преобразования различных дат времени на основе зоны в XSLT2.0 и для форматирования в определенный формат даты и времени, например, гггг / мм / дд или гггг: мм:DDTHH: MM: SS.0Z, но не смог найти способ отформатировать его так, чтобы это выглядело

вт, 09 июля 2019 20:34:29 GMT

concat (date: add ('1970-01-01T00: 00: 00 ', concat (' PT ', этаж (dp: time-value () div 1000),' S ')),': ', dp: time-value () mod 1000)

Возвращается в формате GMT, например, 2019-07-09T21: 01: 26: 547

Как его отформатировать - вт, 09 июля 2019 20:34:29 GMT с использованием XSLT2.0

Ответы [ 2 ]

0 голосов
/ 12 июля 2019

Спасибо за быстрый ответ, ваше решение работало с использованием Altova XML Spy, но, к сожалению, оно не сработало для меня в Datapower, использующем XSLT2.0. Не уверен, что было не так, может быть некоторая проблема с версией прошивки DP.

только для других пользователей, чтобы сделать этот пост более полезным. Я попробовал ниже 2 варианта, которые не работают для меня, но могут быть полезны для других.

с использованием XSLT

<xsl:value-of select="java:java.time.format.DateTimeFormatter.RFC_1123_DATE_TIME.format(ZonedDateTime.now(ZoneOffset.UTC))"></xsl:value-of>

<xsl:value-of select="format-dateTime(current-dateTime(), '[FNn,*-3], [D01] [MNn] [H01]:[m01]:[s01] [z]')"/>

Итак, я использовал скрипт Gateway, чтобы получить тот же формат даты, который я искал и сохранил в контекстной переменной, используя ниже

var dateNeeded = new Date()).toUTCString(); //Thu, 11 Jul 2019 21:08:12 GMT
0 голосов
/ 10 июля 2019

Используйте current-dateTime(), чтобы получить текущую дату и время, а затем используйте format-dateTime, чтобы отформатировать их по мере необходимости, см. Спецификацию https://www.w3.org/TR/xslt20/#function-format-dateTime на деталях: строка изображения

'[FNn,*-3], [D01] [MNn] [H01]:[m01]:[s01] [z]'

на моей машине в немецком летнее время дает

format-dateTime(current-dateTime(), '[FNn,*-3], [D01] [MNn] [H01]:[m01]:[s01] [z]')

как

Wed, 10 July 12:01:13 GMT+02:00

Это подразумевается как пример использования format-dateTime, я не проверял точные детали RFC, которые вы цитировали, чтобы попытаться выполнить точные требования.

...