我有以下保存日期时间值的元素。
我正在尝试将其转换为ISO 8601
UTC,基本上,我正在尝试执行以下操作:
输入:
"lastUpdatedAt": "2019-07-21T13:47:44.000+0100"
所需的输出:
"lastUpdatedAt": "2019-07-21T12:47:44.000Z"
到目前为止我尝试过的:
<xsl:template match="map/string[@key='lastUpdatedAt']">
<xsl:variable name="lastUpdatedAt" select="."/>
<string key="lastUpdatedAt">
<xsl:value-of select="replace(normalize-space($lastUpdatedAt),
'^(\d{2})-(\d{2})-(\d{4})\s+(.*)','$3-$1-$2T$4Z')"/>
</string>
</xsl:template>
我得到的输出:
"lastUpdatedAt": "2019-07-21T13:47:44.000+0100"
假设您的输入实际上是:
"lastUpdatedAt": "07-21-2019 13:47:44.000+0100"
您可以通过执行以下操作将其转换为 UTC 时区中的 ISO-8601 日期时间:
<xsl:template match="string[@key='lastUpdatedAt']">
<xsl:variable name="iso-dateTime" select="replace(. ,'^(\d{2})-(\d{2})-(\d{4})\s+(.*)([+-])(\d{2})(\d{2})','$3-$1-$2T$4$5$6:$7')" />
<string key="lastUpdatedAt">
<xsl:value-of select="adjust-dateTime-to-timezone(xs:dateTime($iso-dateTime), xs:dayTimeDuration('PT0H'))"/>
</string>
</xsl:template>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句