使用日光节省将GMT日期时间转换为xslt中的本地时间

时间:2016-11-22 02:28:46

标签: xslt dst epoch

我正在尝试使用我的时区中的xslt在纪元中转换日期(考虑日间省灯)。我能够将日期时间转换为纪元,但问题是我在GMT的纪元时间获得输出但我想在我的时区(UTC + 13:00)转换它。

我的输入xml是这样的

<invoice>
<invoice_date>2016-11-19</invoice_date>
</invoice>

我在xslt以下使用

<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" />
  <xsl:strip-space elements="*" />
    <xsl:template match="/">
     <xsl:for-each select="invoice">
        <EPOCH_TIME>
                        <xsl:value-of select="(xs:dateTime(concat(invoice_date,'T00:00:00')) - xs:dateTime('1970-01-01T00:00:00') ) div xs:dayTimeDuration('PT1S')"/>
        </EPOCH_TIME>
     </xsl:for-each>
   </xsl:template>
</xsl:stylesheet>

我得到的输出是

<EPOCH_TIME>1479513600</EPOCH_TIME>

如果时区是格林威治标准时间,这一切都很好,因为1479513600将转换为2016年11月19日00:00:00,但在我的时区,这个纪元时间等于2016年11月19日13:00:00。

在这个xslt中,我得到输入日期和01/01/1970之间的天数,然后将其转换为秒数。

如果有任何方法可以将输入日期转换为我的时区并减去xs:dateTime(&#39; 1970-01-01T12:00:00&#39;)那么我就可以对此问题进行排序。

你能帮我解决这个问题。这种转换的任何其他方法对我来说也是完美的。

0 个答案:

没有答案