我的格式为dateTime:2015-04-29T01:30:27.058Z,时差为5000毫秒。是否有任何XSLT函数可以减去这个时间差并产生dateTime的输出?
答案 0 :(得分:1)
在XSLT 2.0或更高版本中(需要像Saxon 9或XmlPrime这样的XSLT 2.0处理器),您可以使用算术xs:dateTime
和xs: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')
给出了自本世纪开始以来的毫秒数。