#xslt-2.0 #formatdatetime
#xslt-2.0 #formatdatetime
Вопрос:
Как я могу отформатировать приведенную ниже дату, чтобы она отображалась следующим образом: ММ / дд / ГГГГ (например: 04.05.2020)?
Поле $getField будет: 2020-05-04T15:00:12
Мое значение в шаблоне: <xsl:value-of select="xs:dateTime($getField) xs:dayTimeDuration('PT1H')"/>
В настоящее время он отображается следующим образом: 2020-04-05T16:00:12
Каждый раз, когда я пытаюсь использовать format-date, я получаю сообщение об ошибке. Кроме того, если я буду использовать xs:date(xs:dateTime($getField) xs:dayTimeDuration('PT12H'))
, он будет отображать только дату, без часов / минут, но все еще не уверен, как я могу изменить порядок для даты?
Спасибо!
Комментарии:
1.Вы смотрели на спецификацию
format-dateTime
w3.org/TR/xslt20/#function-format-dateTime ? Какие аргументы вы пробовали, какие именно ошибки вы получили? Может быть трудно запомнить детали, но, глядя на примеры в w3.org/TR/xslt20/#date-time-examples и их адаптация должна стать хорошей отправной точкой.2. Спасибо! Примеры очень полезны, раньше я не находил эту страницу, я все еще новичок в XSLT2.0. Изначально я пробовал так
format-date(xs:dateTime($getField) xs:dayTimeDuration('PT12H'),'[M]/[D]/[Y]')
, и ошибка заключалась в том, что первым аргументом format-date должна была быть дата. Затем я понял, что мне нужно изменить на дату только мое значение. Он отлично работает следующим образом:format-date(xs:date(xs:dateTime($getField) xs:dayTimeDuration('PT12H')),'[M]/[D]/[Y]')
Большое вам спасибо.
Ответ №1:
Используйте format-dateTime()
функцию с нужным изображением «[M01] / [D01]/ [Y0001]»:
format-dateTime(xs:dateTime($getField) xs:dayTimeDuration('PT1H'), "[M01]/[D01]/[Y0001]")