1

我是Altova Stylevision的新手。我需要将日期从 格式化dd/mm/yydd/Mon/yyyy

我已经尝试了 Altova 手册中建议的选项,但它似乎无法识别格式。

4

1 回答 1

1

这个问题已经差不多三周了,所以也许同时您已经找到了答案,例如通过查看Michael Kay的XSLT 2.0 和 XPath 2.0 程序员参考的第 781 页。或者也许是网络上的其他地方

要在 XSLT 2.0 中实现您想要的,我们首先需要将您的类似日期的字符串转换为国际日期时间表示法。幸运的是,我们只需要关心日期部分,它应该采用YYYY-MM-DD.

之后,我们“只”需要format-date使用正确的图片字符串进行调用:

<!-- first, convert your date into int'l date-notation with a regex -->
<xsl:variable 
    name="date" 
    select="replace('14/09/2014', '(\d+)/(\d+)/(\d+)', '$3-$2-$1')" />

<!-- then, use a properly formatted picture string to get the abbrev. month -->
<xsl:value-of 
    select="format-date(xs:date($date), '[D01]/[MNn,3-3]/[Y]')" />

使用像SaxonExselt(没有尝试Altova)这样的符合处理器的输出是这样的14/Sep/2014

图片字符串的工作方式如下(来自我引用的同一本书):

  • [xxxx]是一个变量标记
  • [D01]将日期部分格式化为两位数的日期(如果您不想要前导零,请忽略零)
  • [MNn,3-3]将月份格式化为Mas case-word withNn宽度为 min 3 和 max 3 with 3-3.
  • [Y]将默认格式的年份格式化为四位数年份。

如果您需要月份的全名,请删除宽度说明符。如果您需要其他输出,请查看 XPath 3.0 规范中的表格,了解可以在图片字符串中使用的内容。

于 2014-07-29T00:44:25.673 回答