Как сказано в другом ответе, вы не установили часовой пояс для format1
. Вы также можете использовать пакет java.time
для решения этой проблемы начиная с java8.
Поскольку 20-01-2019 13:24:56
не содержит информацию о часовом поясе, вы можете:
- разобрать как
LocalDateTime
.
- конвертировать
LocalDateTime
в ZonedDateTime
в UTC.
- получить тот же момент в часовом поясе IST.
Пример:
DateTimeFormatter format1 = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
DateTimeFormatter format2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
ZonedDateTime zonedDateTime = LocalDateTime
.parse("20-01-2019 13:24:56", format1) // parse it without time zone
.atZone(ZoneId.of("UTC")) // set time zone to UTC
.withZoneSameInstant(ZoneId.of("Asia/Kolkata")); // convert UTC time to IST time
System.out.println(format2.format(zonedDateTime)); //2019-01-20 18:54:56