我正在尝试以XSLT中的RFC1123日期格式检索当前日期时间。 有人使用XSL2.0尝试过吗?
我已经看到了用于在XSLT2.0中基于区域转换各种日期时间并以特定日期时间格式(例如yyyy / mm / dd或YYYY:MM:DDTHH:MM:SS.0Z)格式化的代码,但是找不到格式化以使其像这样显示的方式
2019年7月9日星期二20:34:29 GMT
concat(date:add('1970-01-01T00:00:00',concat('PT',floor(dp:time-value()div 1000),'S')),':', dp:time-value()mod 1000)
这将以GMT格式返回,例如2019-07-09T21:01:26:547
如何使用XSLT2.0为其格式化-周二,2019年7月9日20:34:29 GMT?
答案 0 :(得分:0)
使用current-dateTime()
获取当前日期和时间,然后根据需要使用format-dateTime
对其进行格式化,有关详细信息,请参见规范https://www.w3.org/TR/xslt20/#function-format-dateTime:图片字符串
'[FNn,*-3], [D01] [MNn] [H01]:[m01]:[s01] [z]'
在德国夏季时间我的机器上给出
format-dateTime(current-dateTime(), '[FNn,*-3], [D01] [MNn] [H01]:[m01]:[s01] [z]')
为
Wed, 10 July 12:01:13 GMT+02:00
这只是作为使用format-dateTime
的示例,我没有检查您引用的RFC的确切详细信息,以尝试实现确切的要求。
答案 1 :(得分:0)
感谢您的快速答复,您的解决方案使用Altova XML Spy可以工作,但不幸的是,它对使用XSLT2.0的Datapower不适用于我。不确定发生了什么问题,可能是DP固件版本有问题。
仅用于其他用户,以使该帖子更具帮助性。我尝试了以下2个选项,这些选项对我不起作用,但对其他人可能有用。
使用XSLT
<xsl:value-of select="java:java.time.format.DateTimeFormatter.RFC_1123_DATE_TIME.format(ZonedDateTime.now(ZoneOffset.UTC))"></xsl:value-of>
<xsl:value-of select="format-dateTime(current-dateTime(), '[FNn,*-3], [D01] [MNn] [H01]:[m01]:[s01] [z]')"/>
因此,我使用Gateway脚本获取了我一直在寻找的相同日期格式,并使用以下内容将其存储在上下文变量中
var dateNeeded = new Date()).toUTCString(); //Thu, 11 Jul 2019 21:08:12 GMT