Desidero impostare il proprio DateTimeFormatter come formattatore globale. Quando faccio la seguente linea:Java 8 Impostazione dei programmi di formattazione dell'ora globali
ZonedDateTime.now();
ottengo:
2016-03-30T08:58:54.180-06:00[America/Chicago]
Se faccio questo:
ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)
ottengo:
Wed, 30 Mar 2016 9:00:06 -0600
voglio ciò che è stampato sopra ma con am/pm quindi ho creato il mio formattatore personalizzato e stampato il tempo in questo modo:
DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("EEE, dd MMM yyyy HH:mm:ss a Z");
ZonedDateTime.now().format(FORMATTER);
che mi ha dato:
Wed, 30 Mar 2016 9:00:06 AM -0600
ma io uso questo metodo .now()
ovunque a fini di registrazione e non voglio definire il formattatore ovunque nel codice. C'è un modo per configurare il formattatore come formato predefinito da utilizzare quando si chiama il metodo .now()
? Sto pensando come metodo di configurazione di primavera di fagioli o qualcosa .....
Perché non rendere FORMATTER statico single e accedervi ovunque? – Loc
Non sono sicuro di aver capito. 'ZonedDateTime.now()' non dipende da alcun formattatore. E se vuoi che uno solo formatta dopo aver chiamato 'format', perché non averlo solo una costante da qualche parte? – Tunaki
Quello che ottieni è il risultato di toString: stai usando println? logger? un serializzatore? Se ti trovi in un caso toString, non c'è molto da fare. – pdem