2013-12-19 6 views
-2

У меня есть XML, где я получаю этот атрибут:XSLT ISO 8601 Формат времени

Trans_dtmBookingStamp="Fri, 15 Nov, 2013 @ 3:20pm" 

Я хочу, чтобы преобразовать штамп времени, с помощью XSLT, к ISO8601 Format так:

2013-11-13T15:20:00+02:00 
+0

Какая версия XSLT? Можете ли вы опубликовать пример того, что вы пробовали? –

+0

Возможный дубликат [Как разобрать строку на сегодняшний день в xslt 2.0] (http://stackoverflow.com/questions/16851726/how-to-parse-string-to-date-in-xslt-2-0) – ceving

+0

http : //stackoverflow.com/questions/16892344/convert-a-string-to-date-format-in-xslt – ceving

ответ

-2

Смотрите, если это может заставить вас начать:

<xsl:template name="convertDate"> 
    <xsl:param name="datestring" /> 

    <xsl:param name="d" select="substring-before(substring-after($datestring, ' '), ' ')"/> 
    <xsl:param name="mmm" select="substring(substring-after(substring-after($datestring, ' '),' '), 1, 3)"/> 
    <xsl:param name="m" select="string-length(substring-before('JanFebMarAprMayJunJulAugSepOctNovDec', $mmm)) div 3 + 1"/> 
    <xsl:param name="y" select="substring(substring-after($datestring, $mmm), 3 , 4)"/> 
    <xsl:param name="ymmdd" select="10000*$y+100*$m+$d"/> 
    <xsl:param name="mm" select="substring($ymmdd, 5, 2)"/> 
    <xsl:param name="dd" select="substring($ymmdd, 7, 2)"/> 

    <xsl:value-of select="concat ($y, '-', $mm, '-', $dd, 'T')" /> 
</xsl:template> 

Вызов этого шаблона с DateString р арифметр «Пт, 15 ноября, 2013 г., 15:20» вернет значение «2013-11-15T». Временная часть остается в качестве упражнения для читателя.

+0

Серьезно нарушенные люди прогоняют меня, но это хороший код. –

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