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.

È stato utile?

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
scroll top