在XSLT中正确显示时区

时间:2015-04-01 15:38:51

标签: date datetime xslt

使用以下标记显示当前夏令时发生时正常工作的时区,并且由于我们的服务器在英国显示时间为01/04/2015 03:43:00 PM + 0100,我们还希望显示时区,请指教。

以前使用过的标签:

date:format-date(date:date-time(), 'dd/MM/yyyy hh:mm:ss a Z')

问候
Arvind

1 个答案:

答案 0 :(得分:0)

如果“正确”表示您希望它显示为“BST”(英国夏令时),则日期/时间值中实际上没有足够的信息来执行此操作 - 时区偏移+1发生在格林威治子午线附近的许多不同时区。

您正在使用EXSLT库格式化日期和时间。这是基于Java的SimpleDateFormat类,因此您可以尝试使用时区指示符z而不是Z

或者,如果您可以访问XSLT 2.0,则可以使用format-dateTime()函数。这会遇到同样的问题(dateTime值只存储一个偏移量,实际上并没有告诉你时区的名称)。但是你可以通过将format-dateTime()的第5个参数设置为“Europe / London”来给处理器一个线索,在这种情况下它可能能够解决它。