class DateUtil extends AbstractCaller {

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

}