【发布时间】:2016-03-11 17:27:35
【问题描述】:
我有带有 ISO 8601 时间戳的字符串,例如 2016-03-07T10:02:37.820+01:00,我想将它们转换为 UTC 时间。内置的 to_utc_timestamp (AFAIK) 只需要时区名称(例如 PST、CET)而不是偏移量。至少我尝试过并且失败了。在 Hive 中是否有一种优雅的方式来实现这一点?
【问题讨论】:
-
一方面很容易将事物拆分为
2016-03-07T10:02:37,另一方面是+1。所以你可以得到一个unix_timestamp(concat('2016-03-07T10:02:37',' UTC'),'yyyy-MM-ddThh:mm:ss z')——注意假的UTC时区——然后减去3600x1,因为你有一个+1h的偏移量。然后from_unixtime(...) -
啊,印度更棘手,因为他们有这 1/2 小时的额外偏移量......