class DateUtil extends AbstractCaller {

    @Description("Converts epoch milliseconds to time in the UTC time zone modified according to a pattern after applying time zone offset (DST aware)." + MODIFY_HELP + "Example: #{toTimeByZoneId(epochMillis, modifyPattern, timeZoneId)}")
    @UtilityMethod
    public LocalTime toTimeByZoneId(long epochMillis, String modifyPattern, String timeZoneId) {
        ZonedDateTime time = DateTimeUtility.toZonedDateTime(epochMillis).withZoneSameInstant(ZoneId.of(timeZoneId));

        time = modifyTemporal(time, modifyPattern);
        return toTime(DateTimeUtility.toLocalDateTime(time));
    }

}