我的XML有一个看起来像这个
的日期字符串<row id="1">
<DocDueDate>12/06/2016 12:00:00 AM</DocDueDate>
</row>
我正在尝试使用XSLT格式化它
<shipdate>
<!--YYYY-DD-MM-->
<xsl:variable name="var_shipdate" select="row/DocDueDate" />
<xsl:value-of select="concat(substring($var_shipdate, 7, 4), '-', substring($var_shipdate, 1, 2), '-', substring($var_shipdate, 4, 2) ) " />
</shipdate>
这会产生这样的输出
<shipdate>
20161206
</shipdate>
如果我的日期格式从MM/DD/YYYY
更改为MM/D/YYYY
或M/D/YYYY
或M/DD/YYYY
那么我如何操纵字符串连接以产生类似YYYYMMDD
的输出
不论我的源xml格式..
我需要用零填充它,但我如何在'/'
答案 0 :(得分:1)
以这种方式尝试:
<shipdate>
<!--YYYY-DD-MM-->
<xsl:variable name="date" select="substring-before(row/DocDueDate, ' ')" />
<xsl:variable name="year" select="substring-after(substring-after($date, '/'), '/')" />
<xsl:variable name="month" select="substring-before($date, '/')" />
<xsl:variable name="day" select="substring-before(substring-after($date, '/'), '/')" />
<xsl:value-of select="$year" />
<xsl:value-of select="format-number($month, '-00')" />
<xsl:value-of select="format-number($day, '-00')" />
</shipdate>