Con Java 8 podemos devolver un Timestamp en UTC dada una fecha/hora local y el time zone de la misma.
Si además le aplicamos un formato con un objeto DateTimeFormatter, podemos devolver la fecha y la hora como deseemos.
/** * Convierte la fecha con el time zone indicado a UTC * @param localDateTime Fecha y hora local * @param timeZone Time zone de la hora a convertir * @return Devuelve un objeto Timpestamp con la hora en UTC */ public static Timestamp dateToUTCTimeStamp(LocalDateTime localDateTime, String timeZone){ ZonedDateTime zonedFechaExpiracion = ZonedDateTime .now(ZoneId.of(timeZone)) // fecha y hora actual en la delegación .with(localDateTime) // se asigna la fecha y hora que se recibe .withZoneSameInstant(ZoneOffset.UTC); // convertimos a formato UTC DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); return Timestamp.valueOf(zonedFechaExpiracion.format(formatter)); }