presto-main/src/main/java/io/prestosql/type/TimeOperators.java/TimeOperators/castToTimeWithTimeZone
class TimeOperators:    @ScalarOperator(CAST)
    @SqlType(StandardTypes.TIME_WITH_TIME_ZONE)
    public static long castToTimeWithTimeZone(ConnectorSession session, @SqlType(StandardTypes.TIME) long value)
    {
        if (session.isLegacyTimestamp()) {
            return packDateTimeWithZone(value, session.getTimeZoneKey());
        }

        ISOChronology localChronology = getChronology(session.getTimeZoneKey());
        // This cast does treat TIME as wall time in session TZ. This means that in order to get
        // its UTC representation we need to shift the value by the offset of TZ.
        // We use value offset in this place to be sure that we will have same hour represented
        // in TIME WITH TIME ZONE. Calculating real TZ offset will happen when really required.
        // This is done due to inadequate TIME WITH TIME ZONE representation.
        return packDateTimeWithZone(localChronology.getZone().convertLocalToUTC(value, false), session.getTimeZoneKey());
    }