格式化日期时间在xsl(1.0)中,当月/日期只能是一位数

时间:2013-03-04 13:42:44

标签: xml xslt xslt-1.0

我正在尝试格式化以下给定的日期时间

  

2013-3-4 12:57:49

  

20130304

实际上我正在使用这个xsl代码

<xsl:variable name="OrderDate"><xsl:value-of select="Belegexport/Beleg/Kopf/Header_Datum" /></xsl:variable>
<xsl:value-of select="concat(substring($OrderDate, 1, 4),substring($OrderDate, 6, 1),substring($OrderDate, 8, 1))"/>

结果是

  

201334

但是当月份或日期是1位数时我需要零,而当月份或日期长度为2位时我没有零。

我怎么能处理这个? 我无法更改Datasource,我必须使用xslt 1.0版。

任何帮助都非常感谢

1 个答案:

答案 0 :(得分:1)

这个怎么样:

<xsl:variable name="year" select="substring($OrderDate, 1, 4)" />
<xsl:variable name="afterYear" select="substring($OrderDate, 6)" />
<xsl:variable name="month" select="substring-before($afterYear, '-')" />
<xsl:variable name="day" select="substring(substring-after($afterYear, '-'), 1, 2)" />
<xsl:value-of select="$year * 10000 + $month * 100 + $day" />