我想转换这个
5/21/15 13:47
至YYYY-DD-MMTHH:MI:SS
源格式为d(or)dd/m(or)mm/yy hh:mm
我怎样才能做到这一点?
我想转换这个
5/21/15 13:47
至YYYY-DD-MMTHH:MI:SS
源格式为d(or)dd/m(or)mm/yy hh:mm
我怎样才能做到这一点?
像这样的东西:
<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>
给定一个示例输入:
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 年之间。