计算XSLT中的时区偏移量等效于oracle TZ_OFFSET函数

时间:2017-05-10 01:09:55

标签: xslt xpath

我需要计算XSLT中时区的时间偏移量,它可以完成TZ_Offset函数在Oracle中的作用。

例如,在Oracle中

<template>
  <div class="hello">
    <h1>{{ msg }}</h1>
  </div>
</template>

<script>
export default {
  name: 'hello',
  data () {
    return {
      msg: 'Welcome to Your Vue.js App',
      message: 'hello!'
    }
  },
  created () {
    console.log('oh crap')
    this.message = 'bye!'
  }
}
</script>

xslt中是否有可以执行相同操作的功能?

1 个答案:

答案 0 :(得分:0)

没有标准的XSLT函数可以直接执行此操作,但您可以在XPath 3.0 / 3.1中将format-dateTime用于此目的。这就是规范所说的:

  

如果$ place参数以IANA时区的形式提供   实现识别的名称,然后是日期或时间   格式化被调整为适用于该时区的时区偏移量   时区。例如,如果xs:dateTime值为2010-02-15T12:00:00Z   格式化为$ place参数设置为America / New_York,然后   输出将如同值2010-02-15T07:00:00-05:00一样   提供。此调整将夏令时考虑在内   在可能的情况;如果有问题的日期在夏令时下降   在纽约的时间,然后调整到时区偏移-PT4H而不是   比-PT5H。只能使用夏令时进行调整   其中值包括日期,日期在其中   时区数据库涵盖的范围。

因此,format-dateTime(current-dateTime(), '[Z00:00]', (), (), 'America/New_York')应该返回“-05:00”,假设您在调用该功能时处于夏令时。这应该适用于Saxon,但我不了解其他实现。

我没有遇到“美国/东方”作为时区名称:Olsen / IANA时区数据库通常使用大陆/城市格式来避免政治争议。它取决于底层数据库可能有效,也可能无效。