我正在尝试使用显式的UTC偏移(没有其他文字和毫无法)来格式化XSLT中的当前日期时间,例如:20140710163601 + 0200。
但是,这个<x:value-of select="format-dateTime(current-dateTime(), '[Y0001][M01][D01][H01][m01][s01][z]')"/>
给了我这个:20140710164200GMT+02:00
。请注意,我不想要GMT
部分。
如果没有偏移,我会得到20140710144546
。
有没有办法强制显式偏移并将其设置为我想要的格式?显然,我可以做一些字符串操作,但也许有一个我忽略的库函数。然后就是我必须强制格式化的无时区结果。
请注意,围绕此构建函数对我来说没有问题,而是我使用内置或更优雅的东西。
答案 0 :(得分:1)
format-dateTime()的XSLT 2.0规范对时区有点混乱,因此它可能取决于您使用的是哪个处理器。在3.0中,它指定您使用[Z0000]获得所需的格式。最新版本的Saxon根据3.0规范实现了该功能,但其他处理器可能会做出不同的事情。你可能最好使用timezone-from-dateTime()来提取时区,然后使用format-number()格式化它。
答案 1 :(得分:0)
尝试使用(大写)Z而不是(小写)z。