0

我想转换这个

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

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

我怎样才能做到这一点?

4

2 回答 2

0

像这样的东西:

<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>
于 2015-05-25T18:25:58.717 回答
0

给定一个示例输入:

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 年之间。

于 2015-05-25T19:06:37.643 回答