具有短时区 ID 的配置单元时区转换

hive timezone conversion with short Timezone IDs

我正在尝试将 UTC 时间转换为本地时区。我只需要提取日期。当我尝试下面的方法时,它起作用并给出了正确的结果。

select to_date(FROM_UTC_TIMESTAMP(current_timestamp(), 'Pacific/Fiji'));

但如果我尝试使用相应时区的短 ID,则会给出错误的结果。

select to_date(FROM_UTC_TIMESTAMP(current_timestamp(), 'FJT'));

问题在于 GMT 和 UTC 短 ID 的不同。在上面的示例中,'Pacific/Fiji' 是基于 UTC 的短 ID,其中 'FJT' 相当于 GMT。由于我们使用的是配置单元函数 FROM_UTC_TIMESTAMP,因此我们必须使用基于 UTC 的短 ID。这是 UTC based short IDs

的列表