Как преобразовать эти 2 строки в формат даты
Использование Java 8, вы бы разобрать их, как это:
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime dt1 = ZonedDateTime.parse("2016-7-25.15.38. 32. 0",
DateTimeFormatter.ofPattern("uuuu-M-d.H.m. s. 0").withZone(zoneId));
ZonedDateTime dt2 = ZonedDateTime.parse("July 25, 2016 3:19 PM",
DateTimeFormatter.ofPattern("MMMM d, uuuu h:mm a").withZone(zoneId));
Использование нестандартного отступа для выравнивания строки форматирования с помощью v для сравнения.
Код: ZonedDateTime
поэтому для летнего времени будет обработана правильно.
и найти их разницу во времени
Getting разницу во времени является то достаточно легко, используя until()
или between()
:
long seconds = dt1.until(dt2, ChronoUnit.SECONDS);
long seconds = ChronoUnit.SECONDS.between(dt1, dt2);
Они одинаковы. Используйте то, что вам больше нравится.
Если вы печатаете значения выше, вы получите (я нахожусь в США часового пояса Восточного):
2016-07-25T15:38:32-04:00[America/New_York]
2016-07-25T15:19-04:00[America/New_York]
-1172
2016-7-25.15.38. 32. 0 и 25 июля 2016 3:19 вечера оба являются java.sql.Timestamps? –
Вы также можете использовать DateUtils – Bhavesh