2015-04-01 41 views
1

正在使用下面的标记来显示可以正常工作的时区,直到现在夏时制已经发生,并且由于我们的服务器在英国显示时间为01/04/2015 03:43:00 PM + 0100,我们也希望时区显示,请咨询。在XSLT中正确显示时区

标签之前使用:

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

问候
阿文德

+0

对不起,但不清楚你的问题是什么。你说“我们会......喜欢显示时区”。字符串“+0100”是否不算作您的目的时区?从技术上讲,这是一个时间偏移(来自UTC),而不是“时区”(由民法定义的区域,指定与UTC的给定偏移量),并且它不区分英国夏令时和欧洲冬令时,但它服务于同样的目的,大多数人称之为时区。你想要什么,没有? – 2015-04-01 15:51:40

回答

0

如果“适当”你的意思是你想让它显示为“BST”(英国夏令时),那么就没有实际在日期/时间值中有足够的信息来做到这一点 - 在格林威治子午线附近的许多不同时区发生+1时区偏移。

您正在使用EXSLT库来格式化日期和时间。这是基于Java的SimpleDateFormat类,所以你可以试试你的运气与时区指示器z,而不是Z

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