如何使用XSLT 2.0获取当前日期时间的RFC1123日期格式

时间:2019-07-09 21:23:51

标签: date xslt-2.0 gmt

我正在尝试以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?

2 个答案:

答案 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