XSLT ISO 8601时间格式

时间:2013-12-19 06:57:25

标签: xml xslt time

我有一个XML,我得到这个属性:

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

我想用XSLT将时间戳转换为ISO8601格式,如下所示:

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

1 个答案:

答案 0 :(得分:-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 参数“Fri,2013年11月15日@ 3:20 pm”调用此模板将返回值“2013-11-15T”。时间部分留给读者练习。