XSLT日期时间格式转换为YYYY-DD-MMTHH:MI:SS



我想转换这个

5/21/15 13:47YYYY-DD-MMTHH:MI:SS

源格式为d(or)dd/m(or)mm/yy hh:mm

我该怎么做?

给出示例输入:

XML>
<given-date>5/21/15 13:47</given-date>

可以使用:

XSLT 2.0

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="given-date">
    <result>
            <xsl:variable name="dte" select="tokenize(.,'/|s')" />
            <xsl:value-of select="concat('20', $dte[3], format-number(number($dte[1]), '-00'), format-number(number($dte[2]), '-00'), 'T', $dte[4], ':00')" />
    </result>
</xsl:template>
</xsl:stylesheet>

返回:

<?xml version="1.0" encoding="UTF-8"?>
<result>2015-05-21T13:47:00</result>

注意,这里假设所有的日期都在2000年到2099年之间。

像这样:

<xsl:analyze-string select="$in" 
                    regex="(d+)/(d+)/(d+) (d+):(d+)">
  <xsl:matching-substring>
  <xsl:value-of select="'20',
    format-number(number(regex-group(3)), '00'),
    '-',
    format-number(number(regex-group(1)), '00'),
    '-',
    format-number(number(regex-group(2)), '00'),
    'T',
    format-number(number(regex-group(4)), '00'),
    ':',
    format-number(number(regex-group(5)), '00'),
    ':00'"
  separator=""/>
  </xsl:matching-substring>
</xsl:analyze-string>

相关内容

  • 没有找到相关文章

最新更新