我有一个保存日期时间值的以下元素。
我正在尝试将其转换为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"
答案 0 :(得分:0)
您的正则表达式期望\s
之后有空格^(\d{2})-(\d{2})-(\d{4})
从输入日期起将其更改为T
。
<xsl:value-of select="replace(normalize-space($lastUpdatedAt),
'^(\d{4})-(\d{2})-(\d{2})T+(.*)','$1-$2-$3T$4Z')"/>