从xslt中的DateTime减去毫秒数

时间:2015-04-29 08:17:19

标签: xslt

我的格式为dateTime:2015-04-29T01:30:27.058Z,时差为5000毫秒。是否有任何XSLT函数可以减去这个时间差并产生dateTime的输出?

2 个答案:

答案 0 :(得分:1)

在XSLT 2.0或更高版本中(需要像Saxon 9或XmlPrime这样的XSLT 2.0处理器),您可以使用算术xs:dateTimexs:dayTimeDuration,例如

xs:dateTime('2015-04-29T01:30:27.058Z') + xs:dayTimeDuration('-PT0.058S')

计算新的xs:dateTime 2015-04-29T01:30:27Z

为前缀xs假定的XML架构命名空间为http://www.w3.org/2001/XMLSchema。 有关dayTimeDuration的编写方式,请参阅http://www.datypic.com/sc/xsd/t-xsd_dayTimeDuration.html

因此,对于该语言版本,我的建议是使用这两种数据类型和提供的算术运算,而不是计算毫秒数。

答案 1 :(得分:0)

在XSLT 2.0中,

(xs:dateTime($timeStamp) - xs:dateTime('2000-01-01T00:00:00Z')) 
  div xs:dayTimeDuration('PT0.001S')

给出了自本世纪开始以来的毫秒数。