我在这种格式的XML文件中有一个日期(字符串)值:
Tue Apr 17 03:12:47 IST 2012
我想使用XSL转换将字符串/日期转换为以下格式:
4/17/2012 03:12:47 AM
我如何在XSL转换中执行此操作?
答案 0 :(得分:20)
如果您正在使用
XSLT 1.0版本,使用 EXSLT - date:format-date 日期扩展
XSLT 2.0版,使用 built-in: Formatting Dates and Times 日期扩展
但我的建议是
在XML上有标准的XSD日期时间格式,在代码隐藏(即渲染时间)上,您可以根据需要进行格式化。
始终通过XSLT处理XML,日期应采用标准XSD格式。目前您的输入不是标准格式,因此会引发错误。
<强> 实施例 强>
<xsl:variable name="dt" as="xs:dateTime" select="xs:dateTime('2012-10-21T22:10:15')"/>
<xsl:value-of select="format-dateTime($dt, '[Y0001]/[M01]/[D01]')"/>
<强> 输出: 强>
2012年10月21日