xslt Форматирование даты и обратное преобразование в DateTime - BusinessWorks

Я пытаюсь отформатировать dateTime, чтобы удалить часть миллисекунд и иметь только секунды (например, 2015-04-07T17: 13: 19Z)

Проблема в том, что когда я использую функцию dateTime в XSLT как xpath в BW Designer, мне нужно преобразовать выходную строку обратно в dateTime. BW не поддерживает функции в редакторе или EXSLT.

Xsl: element executionDateTime: current () / ns4: tradeHeader / ns4: partyTradeInformation [1] / ns4: executionDateTime

Элемент @executionDateTimeScheme current () / ns4: tradeHeader / ns4: partyTradeInformation [1] / ns4: executionDateTime / @ executionDateTimeScheme

Пожалуйста, помоги, если можешь

Спасибо


person Vincenzo Franco    schedule 19.05.2015    source источник
comment
Мне непонятно, чего вы пытаетесь достичь. Вам нужна помощь, чтобы удалить миллисекунды из сериализации datetime или, скорее, проанализировать datetime?   -  person Florent Georges    schedule 19.05.2015
comment
Мне нужно удалить миллисекунды из datetime - xpath для выбора элемента: current () / ns4: tradeHeader / ns4: partyTradeInformation [1] / ns4: executionDateTime - мне нужно взять это значение элемента и взять миллисекунды.   -  person Vincenzo Franco    schedule 19.05.2015


Ответы (2)


Предполагая, что ваш ввод - это дата и время в формате UTC в форме:

<input>2015-05-19T10:04:56.123Z</input>

вы можете использовать выражение:

concat(substring-before(input, '.'), 'Z')

удалить компонент миллисекунд и получить:

2015-05-19T10:04:56Z
person michael.hor257k    schedule 19.05.2015
comment
Проблема, с которой я столкнулся, связана со схемой, поэтому исходный код был: current () / ns4: tradeHeader / ns4: partyTradeInformation [1] / ns4: executionDateTime, но также current () / ns4: tradeHeader / ns4: partyTradeInformation [1] / ns4: executionDateTime / @ executionDateTimeScheme для атрибута схемы. Когда я заменяю верхнюю строку на верхнюю, она также заполняет схему. Так не должно быть. пожалуйста, порекомендуйте - person Vincenzo Franco; 19.05.2015
comment
@VincenzoFranco Я не понимаю, что вы имеете в виду. Очевидно, вам нужно заменить input на XPath для вашего узла. - P.S. Пожалуйста, не размещайте код в комментариях - вместо этого отредактируйте свой вопрос. Это было бы намного проще, если бы вы для начала разместили небольшой пример своего XML вместе с ожидаемым выводом (в виде кода) - см .: stackoverflow.com/help/mcve - person michael.hor257k; 19.05.2015
comment
заменен сейчас, что я имею в виду, это указанный выше xpath в моем вопросе, проверяет, есть ли схема времени выполнения, а затем заполняет его в сообщении. Таким образом, он всегда заполняется датой и временем, находящейся в элементе. Я не хочу этого делать. - person Vincenzo Franco; 19.05.2015
comment
@VincenzoFranco Извините, я не понимаю, что вы имеете в виду. Просмотрите ссылку выше и опубликуйте воспроизводимый пример. - person michael.hor257k; 19.05.2015

попробуй это:

tib:parse-dateTime('yyyy-MM-dd HH:mm:ss', translate(<<insertYourString>>, 'TZ', ' '))

ввод: строка (2015-04-07T17: 13: 19Z)

вывод: dateTime

person potzet    schedule 08.07.2015