xslt format-date не работает с форматом «пт, 10 мая 2019 01:15:00 GMT» - PullRequest
0 голосов
/ 15 мая 2019

При использовании функции форматирования даты для даты, отформатированной как «Пт, 10 мая 2019 01:15:00 по Гринвичу», я получаю сообщение об ошибке: Неверная дата «Пт, 10 мая 2019 01:15:00 по Гринвичу» ( Нечисловая компонента года)

Я хотел бы получить формат дд / мм / гггг.

1 Ответ

0 голосов
/ 16 мая 2019

Если вы используете XSLT 2, скорее всего, вы используете процессор, такой как Saxon 9 или AltovaXML, который с 2017 года (например, Saxon в выпуске 9.8 или новее или Altova в выпусках 2017 или новее) обновлен для поддержки XSLT 3 и XPath 3.1, где вы могли бы затем используйте функцию parse-ietf-date (https://www.w3.org/TR/xpath-functions/#func-parse-ietf-date)) для разбора входной строки в xs:dateTime, к которой затем можно применить функцию format-dateTime:

format-dateTime(parse-ietf-date('Fri, 10 May 2019 01:15:00 GMT'), '[D01]/[M01]/[Y0001]')

https://xqueryfiddle.liberty -development.net / 6qM2e2m / 1

Ваш текущий подход не работает, так как функция format-date работает с xs:date, а не с произвольно отформатированными строками даты. Этот конкретный формат, который вы показали в своем примере, может быть проанализирован функцией parse-ietf-date.

...