Gibt es eine Möglichkeit, dateFormat-Elemente anzugeben und aktuelle Gebietsschemalregeln zu berücksichtigen? Ich weiß, dass ich SimpleDateFormat
verwenden und das Format angeben kann, das ich mag - aber es kann in anderem Land falsch sein.Benutzerdefinierte Android-Datumsformatierung unter Berücksichtigung der aktuellen Ländereinstellung
Ich habe versucht, die Elemente in DateFormat
zu maskieren, aber es nimmt nur kurze, mittlere und lange:
DateFormat dayMonth = DateFormat.getDateInstance(DateFormat.DAY_OF_WEEK_IN_MONTH_FIELD | DateFormat.MONTH_FIELD);
Caused by: java.lang.IllegalArgumentException: Illegal date style: 11
at java.text.DateFormat.checkDateStyle(DateFormat.java:843)
at java.text.DateFormat.getDateInstance(DateFormat.java:378)
ich will „Oktober 2016“ oder „Rij 2016“ erhalten. Dies kann implementiert werden mit:
DateFormat dayMonth = new SimpleDateFormat("MMM yyyy");
Aber ich möchte dieses Format in meiner App nicht hart codieren. Ich sehe nur einen Weg: Legen Sie es in strings.xml und ein Übersetzer muss es einrichten. Oder gibt es einen besseren Weg?
Sie bei 'LocalDateTime' ausgesehen haben - vielleicht könnte dies som sein Alles was du suchst? Ein Beispiel wäre: 'LocalDateTime.parse (" 2016-07-22 ")' – ishmaelMakitla
Interessante Klasse, aber die Formatmethode verwendet DateTimeFormatter als Argument - wir sind zurück bei meiner Frage. –
Ich sehe, und was ist mit der 'DateTimeFormatter.ISO_LOCAL_DATE_TIME', ihre' Format' Methode dauert '' TemporalAccessor' - was 'LocalDateTime.parse (" 2016-07-22 ")' sein kann. – ishmaelMakitla