2016-07-28 5 views
1

Надеясь, что кто-то другой использует Altova Mapforce для форматирования дат.Преобразование формата даты с использованием Altova MapForce

Я пытаюсь преобразовать формат даты моего XML-файла. Мой файл XML имеет тег с различными значениями, например:

<submitTime>2016-06-09T18:27:56+0000</submitTime> 
<submitTime>2016-06-09T18:13:10+0000</submitTime> 

Я использую таблицу стилей XSLT для преобразования формата даты в виде (YYYY-MM-DD)

<submitTime>2016-06-09</submitTime> 

Это мой XSLT, который я закодировал с помощью программного обеспечения Altavo Mapforce.

....... 
    <submitTime> 
     <xsl:sequence select="format-date(xs:date(fn:string(_source/submitTime)), '[y,4-4][M,2-2][D,2-2]', 'en',(),())"/> 
    </submitTime> 
....... 

Но когда я запустил эту XSLT с XML с помощью программы Java, я получаю эту ошибку:

FORG0001: Invalid date "2016-06-09T17:38:20+0000" (Value includes time) 

Я очень новичок в этом. Возможно, я что-то пропустил. Есть ли другой способ в Altova конвертировать дату в этот формат (ГГГГ-ММ-ДД). Любая помощь будет оценена по достоинству.

ответ

1

Почему вы не просто сделать:

<xsl:value-of select="substring-before(submitTime, 'T')"/> 

Вы никогда не будете иметь возможность форматировать вход с помощью функции format-date(), потому что это не дата, ни функция format-dateTime(), потому что это не является допустимым DATETIME либо (смещение по времени должно быть в формате hh:mm).

+0

Спасибо. Это сработало. Я попробовал это вчера, но я пропустил родительский тег, и поэтому ваше решение не работало. Еще раз спасибо. – Rose

Смежные вопросы