Сначала проанализируйте входную строку в LocalDateTime
, используя DateTimeFormatter
String date = "2019-09-30 17:46:04.600";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
DateTimeFormatter outputFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime local = LocalDateTime.parse(date, formatter);
, а затем преобразуйте LocalDateTime
в ZonedDateTime
с часовым поясом GMT
, равным UTC+0
ZonedDateTime zone = ZonedDateTime.of(local, ZoneId.of("UTC"));
Наконец преобразуйте ZonedDateTime
в LocalDateTime
с US/Eastern
и форматом вывода
String output = zone.withZoneSameInstant(ZoneId.of("US/Eastern")).toLocalDateTime().format(outputFormat);