'PHT'
timezine не распознается, потому что java.time.ZoneId не содержит такой зоны, но содержит IST
.Используйте обозначение смещения по Гринвичу, как это:
hive> select current_timestamp(),to_utc_timestamp(current_timestamp(),'GMT+8:00');
OK
2019-07-10 23:21:24.743 2019-07-10 15:21:24.743
Time taken: 0.096 seconds, Fetched: 1 row(s)
Я не совсем уверен, что это GMT+8:00
на Филиппинах или должно быть GMT-8:00
, вы должны знать лучше, to_utc_timestamp()
будет работать правильно, если вы укажетеправильное смещение по Гринвичу.И в Маниле нет перехода на летнее время, поэтому этот метод должен работать нормально.
Азия / Манила также отлично работает, и, как сказал @F.Lazarescu, лучше использовать идентификатор часового пояса вместо смещения по Гринвичу, поскольку переход на летнее время будетподсчитать, если применимо:
select current_timestamp(),to_utc_timestamp(current_timestamp(),'Asia/Manila');
OK
2019-07-11 23:09:47.257 2019-07-11 15:09:47.257
Time taken: 4.029 seconds, Fetched: 1 row(s)
Взгляните и на эту весьма полезную статью: Следите за часовыми поясами с Sqoop, Hive, Impala и Spark