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
Die letzten 7 Zeichen entfernen und ein Z dranhängen?
Ist doch ziemlich naheliegend, oder nicht?
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.
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';
Schneide die doch einfach raus?
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: