2016-06-11 7 views
0

Mein Datum-Uhrzeit-Formatzeichenkette ist: yyyy-MM-dd'T'HH:mm:ss.SSSZ
Ich verwende von Joda Time, um mein Datum in dem oben genannten Format zu drucken. JetztDateFormatter druckt keinen Wert in dem angegebenen Format

, betrachten das Datum als

2016/04/01 23:00:00

dann sollte es gedruckt haben

2016-04-01T23: 00 : 00.000Z

Aber es druckt

2016-04-01T23: 00: 00,000 + 0200

Bitte helfen Sie mir das Datum im gleichen Format gedruckt in immer wie im String-Format angegeben.

+1

Bitte geben Sie das komplette Code-Snippet an, das dieses Verhalten erzeugt –

Antwort

1

Nach https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html Z hat eine besondere Bedeutung:

Z  zone-offset 

Wenn Sie mit ‚Z Zitat Z zu entkommen:

yyyy-MM-dd'T'HH:mm:ss.SSS'Z' 

Zum Beispiel:

java.time.LocalDateTime date = java.time.LocalDateTime.now(); 
java.time.format.DateTimeFormatter formatter = java.time.format.DateTimeFormatter 
       .ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); 
java.lang.String text = date.format(formatter); 
System.out.println(text); 

druckt

2016-06-11T18:39:41.962Z 
+0

Vielen Dank @AnatolyS. Ich vermisste die einfachen Zitate um Z. – vijayinani

+0

Nein, nein, nein. Alles, was Sie getan haben, ist Text anhängen, eine Falschheit erstellen. Wenn Ihre Datum-Uhrzeit einen Moment in einer Zeitzone repräsentiert, die zwei Stunden vor UTC liegt, wie "Europa/Helsinki", und Sie am Ende, das "Zulu" sagt und UTC bedeutet, ein "Z" schlagen, sagen Sie jetzt eine Lüge, die einen Wert darstellt, der um zwei Stunden abweicht. Dies ist so, als würde man das Dollarzeichen in einem Preis durch ein Euro-Währungssymbol ersetzen, aber die Nummer nicht ändern. –