Questo perché il Locale fuso orario, per ottenere ciò che è necessario trasformare la data utilizzando SimpleDateFormat
:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
UPDATE quando si commento:
I tried formatting it to a String then again parsing it to a Date. Then setting time in Calender object. Does not work. Still i get output as "2015-04-15T11:04:30.000Z"
Si deve capire che Calendar
o Date
gli oggetti sono memorizzati nel proprio formato, un'altra cosa è come li stampi, quindi in questo caso, per vedere 2015-04-15T11:04:30.000Z
nelloLa rappresentazionenon ha importanza, quello che ti serve è avere la data corretta 2015-04-15
allo 11:04:30
mostrare questo nel formato desiderato è solo per rendere user-friendly il tuo output.
L'output che si ottiene è da Calendar.toString() e il metodo doc dice:
Return a string representation of this calendar. This method is intended to be used only for debugging purposes, and the format of the returned string may vary between implementations. The returned string may be empty but may not be null.
Quindi, al fine di memorizzare la data e l'ora, l'oggetto Calendar
è corretto. Per stamparlo, devi trasformarlo in un String
.
fonte
2015-05-18 08:14:25
ho provato la formattazione a una stringa poi di nuovo l'analisi ad una data. Quindi impostare l'ora nell'oggetto Calender. Non funziona. Ancora ottengo l'uscita come "2015-04-15T11: 04: 30.000Z". – Raj
Il metodo'toString() 'di Calendar ha una sua implementazione !!! devi sovrascriverlo se vuoi cambiarlo, o semplicemente stampare una stringa formattata, non devi preoccuparti di come viene memorizzata ... –
Grazie.Ho imparato molto da quella spiegazione. – Raj