Ich möchte meinen eigenen DateTimeFormatter als globalen Formatierer setzen. Wenn ich die folgende Zeile zu tun:Java 8 Einstellung globaler Zeitformatierer
ZonedDateTime.now();
ich:
2016-03-30T08:58:54.180-06:00[America/Chicago]
Wenn ich dies tun:
ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)
ich:
Wed, 30 Mar 2016 9:00:06 -0600
Ich will, was gedruckt ist oben, aber mit am/pm, also habe ich meinen eigenen Formatierer gemacht und ausgedruckt die Zeit, in etwa so:
DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("EEE, dd MMM yyyy HH:mm:ss a Z");
ZonedDateTime.now().format(FORMATTER);
Was mir gab:
Wed, 30 Mar 2016 9:00:06 AM -0600
Aber ich benutze diese Methode .now()
überall zur Protokollierung und ich möchte nicht die Formatierungs überall im Code definieren. Gibt es eine Möglichkeit, den Formatierer als Standardformat für den Aufruf der Methode .now()
zu konfigurieren? Ich denke, wie der Frühling Bohne Konfigurationsmethode oder etwas .....
Warum FORMATTER nicht statisch Singleton machen und überall darauf zugreifen? – Loc
Ich bin mir nicht sicher, ob ich das verstehe. 'ZonedDateTime.now()' hängt nicht von einem Formatierungsprogramm ab. Und wenn Sie nach dem Aufruf von 'format' einen einzelnen formatieren wollen, warum sollte er nicht irgendwo eine Konstante haben? – Tunaki
Was Sie bekommen, ist das toString-Ergebnis: Verwenden Sie println? Logger? ein Serializer? Wenn Sie sich im toString-Fall befinden, gibt es nicht viel zu tun. – pdem