我有带有 ISO 8601 时间戳的字符串,例如 2016-03-07T10:02:37.820+01:00
,我想将它们转换为 UTC 时间。内置的 to_utc_timestamp
(AFAIK) 只采用时区名称(例如 PST、CET)而不是偏移量。至少我尝试过但失败了。在 Hive 中是否有一种优雅的方式来实现这一点?
最佳答案
一种方法是,您可以编写 Hive UDF 进行时间格式转换。
另一种方法是,使用 unix_timestamp
将 ISO 时间戳转换为秒,然后使用 to_utc_timestamp
TO_UTC_TIMESTAMP(UNIX_TIMESTAMP(T.date, "yyyy-MM-dd'T'hh:mm:ss.SSS'Z'") * 1000, '<timezone>')
关于datetime - Hive 时间戳 ISO 到 UTC 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35935981/