У меня есть две метки времени, которые описывают один и тот же момент времени в двух разных форматах.Дата составления с Joda с часовым поясом
2010-10-03 18:58:07
и 2010-10-03T16:58:07.000+02:00
.
Я разбираю временные метки с двумя разными форматами даты с Джодой. В конце я хочу иметь два объекта DateTime, которые равны по времени того же момента времени.
DateFormatter предлагает несколько способов управления часовыми поясами и локалями, но я не мог заставить его работать.
Это код, который я хотел бы работать:
final String date1 = "2010-10-03 18:58:07"; // Europe/Berlin local time
final DateTimeFormatter formatter1 = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
final DateTime dateTime1 = formatter1.parseDateTime(date1);
final String date2 = "2010-10-03T16:58:07.000+02:00"; // Europe/Berlin local time with time zone
final DateTimeFormatter formatter2 = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
final DateTime dateTime2 = formatter2.parseDateTime(date2);
Assert.assertTrue(dateTime1.isEqual(dateTime2));
Заранее спасибо, если кто-нибудь может мне помочь!
У вас есть тип в «2010-10-03T16: 58: 07.000 + 02: 00 означает, что он не 16:58:07 в часовом поясе с смещением +2 часа от GMT)». Он должен читать: «2010-10-03T16: 58: 07.000 + 02: 00 означает, что это 16:58:07 в часовом поясе со смещением +2 часа от UTC)« – MicSim
Да, я ожидал, что это будет 16 : 58: 07 GMT. Тогда похоже, что временные метки только что сломаны. Это временные метки из двух разных файлов журналов разных серверов. И я уверен, что они указывают одно и то же событие. Итак, это была моя путаница. – wilfried
@MacSim: Конечно, я написал немного слишком быстро. – jarnbjo