XSLT ISO 8601 时间格式 [英] XSLT ISO 8601 Time format

查看:39
本文介绍了XSLT ISO 8601 时间格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 XML,我可以在其中获取此属性:

I have an XML where I get this attribute:

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

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

I want to convert the time stamp, with XSLT, to an ISO8601 Format like this:

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

推荐答案

看看这是否能让你开始:

See if this can get you started:

<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, 15 Nov, 2013 @ 3:20pm"调用此模板将返回值2013-11-15T".时间部分留给读者作为练习.

Calling this template with a datestring parameter of "Fri, 15 Nov, 2013 @ 3:20pm" will return a value of "2013-11-15T". The time portion is left as an exercise for the reader.

这篇关于XSLT ISO 8601 时间格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆