将 ZULU 时间转换为 PST

Posted

技术标签:

【中文标题】将 ZULU 时间转换为 PST【英文标题】:Covert ZULU time to PST 【发布时间】:2020-05-18 10:40:05 【问题描述】:

我正在尝试将 yulu 格式的 start_time 转换为 pst。 开始时间示例:2020-02-04T04:36:42:211Z

from_unixtime(unix_timestamp(sub string(start_time,1,17),'yyyy-MM-ddThh:mm:ss.SSSZ),'yyyy-MM-dd hh:mm:ss)

但我得到的输出为 NULL。

请帮忙。

【问题讨论】:

【参考方案1】:

在字符串中转义TZ。请注意该模式使用双引号,TZ 使用单引号进行转义。

select from_unixtime(unix_timestamp('2020-02-04T04:36:42:211Z',"yyyy-MM-dd'T'HH:mm:ss:SSS'Z'")
                     ,'yyyy-MM-dd HH:mm:ss')

此外,您不需要substring,因为您正在匹配完整字符串的模式。

【讨论】:

你能看看***.com/questions/61876238/…【参考方案2】:

最好使用 FROM_UTC_TIMESTAMP,因为 UNIX_TIMESTAMP 返回秒,您将丢失时间戳的毫秒部分。

FROM_UTC_TIMESTAMP(UNIX_TIMESTAMP(2020-02-04T04:36:42:211Z, "yyyy-MM-dd'T'hh:mm:ss.SSS'Z'"), 'PST')

有时可能因为“T”和“Z”我们的结果会失真。在这种情况下,我们可以使用:

from_utc_timestamp(CONCAT(substring('2020-02-04T04:36:42:211Z',1,10)," ",substring('2020-02-04T04:36:42:211Z',12,12)),'PST')

【讨论】:

以上是关于将 ZULU 时间转换为 PST的主要内容,如果未能解决你的问题,请参考以下文章

将UTC时间转换为PST以获得夏令时?

将 PDT/PST 时区列转换为 UTC 时区

将 PST 中的日期与时间转换为 UTC 格式

是否有根据日期转换为 PST 或 PDT 的 SQL 函数?

使用 Snowflake 将时间 PST/PDT 转换为时间戳

如何在 Python 中获取 GMT 并将其转换为 PST