在 XSL 中将 GMT 时间转换为本地时间
Covert GMT to local time in XSL 1.0
我的时间格式如下:
2017 年 12 月 21 日03:52:42:000000
我需要在 xslt 中将其转换为本地时区。
在我的代码中,我使用以下格式:
<xsl:param name="format" select="'h:mm:ss a'"/>
这似乎不正确,请任何人更正我的格式。
如果您希望 21 Dec 2017 03:52:42:000000
格式化为本地时间 5:52:42
之类的格式并使用 xslt 1.0,则无法直接格式化日期时间值。
xslt param 就像一个变量,但它的值可以从调用者上下文中设置,例如调用模板或由 xslt 处理器给出,因此在您的示例中 $format
的值将是 'h:mm:ss a'
如果它没有被调用者覆盖。所以基本上这将是您的输出,而不是格式化时间。
当然,如果您使用带有此预定义格式字符串的扩展对象,那么格式化是辅助方法的责任,而不是 xslt 的问题。
如果您想使用本机 xslt 1.0 格式化日期时间,那么这里有一些如何操作的示例:see XSLT 1.0 stylesheet sample or in here there is sample for time splitting。所以时间格式化只是切掉了字符串部分。
例如你的输入 <xsl:variable name="InputTime" select="'21 Dec 2017 03:52:42:000000'"/>
和
<xsl:value-of select="substring($InputTime, 13, 8)"/>
输出将是
03:52:42
如果你将它分成小时、分钟和秒那么你可以将它们修改为数字。
我的时间格式如下: 2017 年 12 月 21 日03:52:42:000000
我需要在 xslt 中将其转换为本地时区。
在我的代码中,我使用以下格式:
<xsl:param name="format" select="'h:mm:ss a'"/>
这似乎不正确,请任何人更正我的格式。
如果您希望 21 Dec 2017 03:52:42:000000
格式化为本地时间 5:52:42
之类的格式并使用 xslt 1.0,则无法直接格式化日期时间值。
xslt param 就像一个变量,但它的值可以从调用者上下文中设置,例如调用模板或由 xslt 处理器给出,因此在您的示例中 $format
的值将是 'h:mm:ss a'
如果它没有被调用者覆盖。所以基本上这将是您的输出,而不是格式化时间。
当然,如果您使用带有此预定义格式字符串的扩展对象,那么格式化是辅助方法的责任,而不是 xslt 的问题。
如果您想使用本机 xslt 1.0 格式化日期时间,那么这里有一些如何操作的示例:see XSLT 1.0 stylesheet sample or in here there is sample for time splitting。所以时间格式化只是切掉了字符串部分。
例如你的输入 <xsl:variable name="InputTime" select="'21 Dec 2017 03:52:42:000000'"/>
和
<xsl:value-of select="substring($InputTime, 13, 8)"/>
输出将是
03:52:42
如果你将它分成小时、分钟和秒那么你可以将它们修改为数字。