public static double convertTimestampTZToDouble(TimestampTZ timestampTZ) {
    return timestampTZ.getEpochSecond() + timestampTZ.getNanos() / NANOS_PER_SEC;
  }
Timestamps are technically time zone agnostic, and this method sort of cheats its logic.
Timestamps are supposed to represent nanos since [UTC epoch]. Here,
the input timestamp represents nanoseconds since [epoch at fromZone], and
we return a Timestamp representing nanoseconds since [epoch at toZone].
common/src/java/org/apache/hadoop/hive/common/type/TimestampTZUtil.java