0

预先感谢您的支持。

我有日期格式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

4

2 回答 2

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))" />

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

在它自己的模板中:

<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>
于 2013-07-16T19:21:13.163 回答
0

您可以在 xslt 中使用自定义的 java 函数,因为这种日期转换在 Java 中也是可能的。

于 2015-02-06T12:17:35.260 回答