1

この提案に従う:XSLTでティックを読み取り可能な日時に変換する方法は?これは、Unixタイムスタンプ形式を人間が読める形式の日時形式に変換する方法を示しています。XSLを使用してWindows64ビットファイル時間構造を変換したいと思いました。

<xsl:value-of select="xs:dateTime('1960-01-01T00:00:00Z') + @WDT * xs:dayTimeDuration('PT0.0000001S')"/>

ここで、@WDT属性はWindows64ビットの日時番号を表します。

しかし、私は望ましい結果を得ることができません。「129854922043437500」の日付:「2371-06-30T01:10:04.34375Z」を取得しますが、「30.06.2012 03:10:04」を期待
していましたが、このアプローチでは何が間違っている可能性がありますか?

4

1 に答える 1

1

主な問題は、使用している最初のデータです。正しい日付は1601年1月1日です。

だから

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="/">
   <xsl:value-of select=
   "xs:dateTime('1601-01-01T00:00:00Z')
     + 129854922043437500 idiv 10000000 *xs:dayTimeDuration('PT1S')"/>
 </xsl:template>
</xsl:stylesheet>

XMLドキュメント(使用されていない)に適用すると、正確に必要な正しい結果が得られます。

2012-06-30T01:10:04Z
于 2012-10-14T05:16:57.060 に答える