UTC Zeitformat in Java?
Wie kann ich in Java die aktuelle UTC Zeit in der Form
2022-05-27T14:30:29.813Z
als String bekommen?
Angenommen bei mir ist es jetzt 16:30:29 und der Offset zu UTC ist +2Stunden.
Ich probiere jetzt seit einer Stunde herum, kriege das aber nicht gebacken:
Das hier kommt zwar hin, ich will aber nicht Mikrosekunden dabei haben:
public static String getIsoUtcDate() {
Instant inst = Instant.now();
return inst.toString();
}
2022-05-27T14:30:29.813923100Z
Ich habe es gerade herausgefunden:
return DateTimeFormatter.ISO_INSTANT.format(Instant.now().truncatedTo(ChronoUnit.MILLIS))
3 Antworten
![](https://images.gutefrage.net/media/default/user/6_nmmslarge.png?v=1438863662000)
Die letzten 7 Zeichen entfernen und ein Z dranhängen?
Ist doch ziemlich naheliegend, oder nicht?
![](https://images.gutefrage.net/media/default/user/6_nmmslarge.png?v=1438863662000)
Bei mir ist die Methode mit
return inst.toString().substring(0,23) + "Z";
Durchgehend rund 50-100% schneller als mit
return DateTimeFormatter.ISO_INSTANT.format(Instant.now().truncatedTo(ChronoUnit.MILLIS));
Mal davon abgesehen dass ich dann weniger Imports habe.
Denn, ein bisschen String manipulation ist kaum Aufwand.
![](https://images.gutefrage.net/media/user/Functional/1676159504902_nmmslarge__0_0_960_960_e2ac34e1b18f19102f515d8e9bd9a8ba.jpg?v=1676159505000)
Einfach die letzten 7 Zeichen (in dem Beispiel alles hinter der 813) weg schneiden und das dann fehlende "Z" dran hängen.
String javaTimestamp = inst.toString();
return javaTimestamp.substring(0, javaTimestamp.length() - 7) + 'Z';
![](https://images.gutefrage.net/media/user/FaTech/1708715131049_nmmslarge__0_0_500_500_77a0f43d5804c908f40c8a1b0c260400.png?v=1708715131000)
Schneide die doch einfach raus?
![](https://images.gutefrage.net/media/user/YBCO123/1646602918217_nmmslarge__0_68_420_419_d3d288bd2dc0d011c9923cacaee93f3d.jpg?v=1646602918000)
danke, aber das muss auch "ordentlich gehen".
Gerade habe ich die Lösung gefunden:
DateTimeFormatter.ISO_INSTANT.format(Instant.now().truncatedTo(ChronoUnit.MILLIS));
Danke, aber das ist ja Pfusch ;-)
ich habe gerade herausgefunden, wie es geht: