2016-07-11 10 views
0

Ich habe eine Variable:Von YearMonth (yyyy-MM) zu YearMonth (yyyy-MMMM)

YearMonth date; 

wo "2016-07" innen stehen, zum Beispiel.

Ich möchte es noch YearMonth, aber mit "2016 july" (beachten Sie, es gibt kein "-" Separator), oder noch besser, "2016 luglio", das ist Italienisch Locale.

Wie geht das?

UPDATE

Ich habe versucht, mit der Methode des Jackdaniels. Es könnte tatsächlich funktionieren, da es mir eine Zeichenfolge (str) mit dem richtigen Format des Datums gibt. Aber ich muss diese Zeichenfolge wieder in meine Variable YearMonth einfügen. Ich habe versucht, mit:

myVariable = YearMonth.parse(str); 

aber es gibt mir eine Fehlermeldung: java.time.format.DateTimeParseException: Text '2014 gennaio' could not be parsed at index 4

Wie kann ich dieses Problem lösen?

+0

Haben Sie den aktualisierten Code getestet? Es hat sowohl das Beispiel zum Parsen als auch zum Formatieren von Daten zwei verschiedene Zeitzonen. Versuchen Sie, den Code zu bearbeiten und zeigen Sie uns, was Sie versucht haben, damit wir Ihnen besser helfen können. – JackDaniels

Antwort

2

Verwenden Sie das neue DateTimeFormatter, um YearMonth direkt zu analysieren und zu formatieren, und verwenden Sie Locale, um das Gebietsschema festzulegen, das Sie benötigen. Verwenden Sie kein SimpleDateFormat. Das ist Teil der alten Date API.

Versuchen Sie, den Code auszuführen, um zu sehen, ob dies in Codiva online compiler IDE ist.

YearMonth yearMonth = YearMonth.of(2016, 7); 
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy MMMM", 
    new Locale("it", "IT")); 
System.out.println(yearMonth.format(formatter)); 

Voller funktionierender Code in Codiva.

+0

yearMonth.format (Formatierer) gibt mir eine Zeichenfolge. Ich habe versucht, myVariable = YearMonth.parse (str) zu tun, aber es wird mir einen Fehler geben: java.time.format.DateTimeParseException: Text '2014 Gennaio' konnte nicht bei Index 4 – Marco

+0

analysiert werden Verwenden Sie diese Methode. https://docs.oracle.com/javase/8/docs/api/java/time/YearMonth.html#parse-java.lang.CharSequence-java.time.format.DateTimeFormatter- Der Beispielcode für das Parsen wurde ebenfalls aktualisiert im Codiva-Link. – JackDaniels

+0

funktioniert nicht. Sie können sich selbst sehen, es gibt "2014-01", nicht "2014 Januar" – Marco

Verwandte Themen