Ho due timestamp che descrivono lo stesso istante di tempo in due formati diversi.Data di analisi con Joda con fuso orario
2010-10-03 18:58:07
e 2010-10-03T16:58:07.000+02:00
.
Analizzo i timestamp con due diversi formattatori di data con Joda. Alla fine voglio avere due oggetti DateTime che sono uguali in termini di essere lo stesso istante di tempo.
DateFormatter offre diversi metodi per controllare i fusi orari e le impostazioni internazionali ma non sono riuscito a farlo funzionare.
Questo è il codice che mi piacerebbe lavorare:
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));
Grazie in anticipo se qualcuno mi può aiutare!
Hai un tipo in "2010-10-03T16: 58: 07.000 + 02: 00 significa che non è 16:58:07 in un fuso orario con un offset di +2 ore da GMT)". È necessario leggere: "2010-10-03T16: 58: 07.000 + 02: 00 significa che sono le 16:58:07 in un fuso orario con un offset di +2 ore da UTC)" – MicSim
Sì, mi aspettavo che fosse 16 : 58: 07 GMT. Quindi sembra che i timestamp siano stati interrotti. Questi sono timestamp da due diversi file di registro di diversi server. E sono abbastanza sicuro che specificano lo stesso evento. Quindi questo è stato il mio confusione proveniva da. – wilfried
@MacSim: Certo, ho scritto un po 'troppo veloce lì. – jarnbjo