在xsl中将dd / mm / yy转换为dd-MM-YYYY格式

时间:2013-07-16 17:10:47

标签: xslt xslt-1.0 xslt-2.0 date-formatting

提前感谢您的支持。

我的日期格式为dd/MMM/YY,需要使用dd-MM-YYYY转换为另一种格式XSL

这里的问题是,年份是短格式需要转换成长格式。如何确定年度?

以下是几个例子,

dd/MMM/YY - dd-MM-YYYY

01/FEB/91 - 01-02-1991.

13/APR/13 - 13-04-2013.

使用字符串操作,XSL可以将其转换为长格式,但无法确定实际年份。

例如

可以使用字符串函数将

01/FEB/91转换为01-02-199101-02-2091

那么,如何使用XSL 1.0 or XSL 2.0获取实际日期?

2 个答案:

答案 0 :(得分:2)

你需要考虑你在问什么。 XSLT无法知道01 / FEB / 91是指01-02-1991还是01-02-2091或01-02-1891。你需要决定截止年份的位置。

您可以制作截止日期2013并执行此操作:

<xsl:variable name="longYear"
              select="$shortYear + 2000 - (100 * ($shortYear > 13))" />

这将导致20XX年数小于或等于13年,19XX年数大于13年。

在自己的模板中:

<xsl:template name="LongYear">
  <xsl:param name="shortYear" select="." />
  <xsl:param name="cutoff" select="13" />

  <xsl:value-of select="$shortYear + 2000 - (100 * ($shortYear > $cutoff))" />
</xsl:template>

您可以使用以下方式调用:

<xsl:call-template name="LongYear">
  <xsl:with-param name="shortYear" select="substring(Date, 8, 2)" />
</xsl:call-template>

答案 1 :(得分:0)

您可以在xslt中使用自定义java函数,因为这可以在Java中进行日期转换。