【问题标题】:Xslt datetime conversionXslt 日期时间转换
【发布时间】:2022-01-11 04:54:06
【问题描述】:

我正在接收 xsd:dateTime 格式“2021-10-20T15:30:46Z”的日期,我想在 xslt 2.0 中将其转换为“2021-10-20T15:30:46.000+04:00” .

我无法获得正确的图片字符串。

format-dateTime($DateTime, "[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01].[f001]Z") 

但它返回“2021-10-20T15:30:46Z”

【问题讨论】:

  • 你确定这是你想要的结果吗?您的输入和输出之间有 4 小时的差异。当 GMT 时间为 15:30 时,您的目标时区时间为 19:30。

标签: xslt xslt-2.0


【解决方案1】:

这不是格式问题。为了获得您想要的结果,您需要 (a) 从给定的 dateTime 中减去 4 小时,并 (2) 将结果调整为偏移量为 4 小时的时区:

adjust-dateTime-to-timezone(xs:dateTime($DateTime) - xs:dayTimeDuration('PT4H'), xs:dayTimeDuration('PT4H'))

【讨论】:

  • 会试试这个并告诉你。是否不能提供这样的格式-dateTime($DateTime, "[Y0001]-[M01]-[D01]T[H01]:[m01 ]:[s01].000+04.00") .
  • 是的,有可能。也是正确的吗?我不这么认为,因为 dateTime 值正在更改,而不是重新格式化。如果你想忽略它,你可以做一个简单的字符串操作:replace($DateTime, 'Z', '.000+04.00').
猜你喜欢
  • 2017-10-01
  • 1970-01-01
  • 2017-06-23
  • 2020-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多