Domanda
mi piacerebbe visualizzare per esempio 31.12.1999 per anni AC e 31-12 - (-) 2000 per anni prima di Cristo. Ho trascorso qualche tempo con ad esempio l'API joda qualcosa di simile:
new DateTimeFormatterBuilder().appendYear(4, 10).appendLiteral("-").appendMonthOfYear(2).appendLiteral("-").appendDayOfMonth(2).toFormatter();
, ma non riesco a trovare tutti i dettagli su questo desiderio specifica.
Soluzione
Per il caso AD:
new DateTimeFormatterBuilder() .appendDayOfMonth(2).appendLiteral("-") .appendMonthOfYear(2).appendLiteral("-") .appendYear(4, 10).toFormatter();
Per il caso BC:
new DateTimeFormatterBuilder() .appendDayOfMonth(2).appendLiteral("-") .appendMonthOfYear(2).appendLiteral("-(-)") .appendYear(4, 10).toFormatter();
Quindi scrivere un'istruzione if prima della formattazione.
Se si desidera un singolo formattatore per fare questo è possibile implementare DateTimePrinter
e quindi aggiungere che a DateTimeFormatterBuilder
.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow