在 XSL 中使用时区格式化日期

Format date with timezones in XSL

从XML我收到

形式的日期
value="2020-08-11T21:00:00.000Z"

我住在 GMT +3 时区,所以这个日期应该 return 2020-08-12。如果我只是输出日期并在浏览器中显示它,它似乎可以正确呈现。但是当我使用 apache FOP 将它输出为 PDF 时,它只显示那里显示的值。

我尝试使用 format-dateTime() 但它输出的日期与前一天一样。 我还能尝试什么?

此外,这里的子字符串处理不是很好。我需要 XSLT 自动将 3 小时(取决于时区)添加到给定日期,以便 return 正确的日期。

format-dateformat-dateTime 取一个 timezone/place,您希望将其格式化为日期或日期时间作为第五个参数,例如format-dateTime(xs:dateTime('2020-08-11T21:00:00.000Z'), '[Y0001]-[M01]-[D01] [z]', 'en', (), 'Asia/Baghdad') 你应该得到例如2020-08-12 GMT+03:00.

https://xsltfiddle.liberty-development.net/6pS2B6W