Wie kann ich einen Integer in einen lokalisierten Monatsnamen in Java konvertieren?
Bekomme ich ein integer, und ich brauche, um zu konvertieren, um einen Monatsnamen in verschiedenen Sprachen:
Beispiel für das Gebietsschema en-us:
1 -> Januar
2 -> Februar
Beispiel für die locale-es-mx:
1 -> Enero
2 -> Febrero
InformationsquelleAutor der Frage atomsfat | 2009-06-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort joe
Müssen Sie mit LLLL für stand-alone-Monats-Namen. dies ist dokumentiert in der
SimpleDateFormat
Dokumentation, wie:InformationsquelleAutor der Antwort Ilya Lisway
Ich würde " = SimpleDateFormat. Jemand korrigieren Sie mich, wenn es gibt ein einfacher Weg, um eine monthed Kalender, obwohl ich dies in den code jetzt, und ich bin mir nicht so sicher.
InformationsquelleAutor der Antwort stevedbrown
Hier ist, wie ich es tun würde. Ich lasse die Reichweitenkontrolle auf die
int month
bis zu Sie.InformationsquelleAutor der Antwort Bill the Lizard
Verwendung Von " = SimpleDateFormat.
Ergebnis: Februar
InformationsquelleAutor der Antwort Terence
Offenbar in Android 2.2 gibt es einen Fehler mit " = SimpleDateFormat.
Um Monats-Namen, die Sie definieren müssen Sie sich selbst in Ihren Ressourcen:
Dann verwenden Sie in Ihrem code wie folgt:
InformationsquelleAutor der Antwort IHeartAndroid
java.Zeit
Seit Java 1.8 (oder 1.7 & 1.6 mit der ThreeTen-Backport) können Sie verwenden:
Beachten Sie, dass
integerMonth
ist 1-basiert, D. H. 1 steht für Januar. Reichweite ist immer von 1 bis 12 für Januar-Dezember (d.h. Gregorianischen Kalender).InformationsquelleAutor der Antwort Oliv
tl;dr
java.time.Month
Viel leichter zu tun, jetzt in java.Zeit Klassen, verdrängen diese lästigen alten legacy-Datum-Zeit-Klassen.
Den
Monat
enum definiert als ein Dutzend Objekte, eines für jeden Monat.Den Monaten sind nummeriert von 1-12 für Januar-Dezember.
Bitten Sie das Objekt generiert einen String, der name des Monats, automatisch lokalisiert.
Passen Sie die
TextStyle
angeben, wie lange oder kurz soll der name. Beachten Sie, dass in einigen Sprachen (nicht Deutsch) der name des Monats, variiert, wenn verwendet, allein oder als Teil einer kompletten Datum. So dass jeder text-Stil hat eine…_STANDALONE
Variante.Angeben
Locale
zu bestimmen:Beispiel:
Name →
Month
ObjektZur info, wenn man in die andere Richtung (parsing a name-des-Monats-string zu bekommen
Month
enum-Objekt) ist nicht integriert. Man könnte eine eigene Klasse schreiben zu tun. Hier ist mein kurzer Versuch, eine solche Klasse. Nutzung auf eigene Gefahr. Ich habe diese code nicht ernsthaft noch jede ernsthafte Prüfung.Nutzung.
Code.
Über java.Zeit
Den java.Zeit framework ist in Java 8 und höher. Diese Klassen verdrängen die lästige alte Vermächtnis Datum-Zeit-Klassen wie
java.util.Date
Calendar
&" = SimpleDateFormat
.Den Joda-Time Projekt, jetzt in Wartungsmodusrät der migration auf die java.Zeit Klassen.
Um mehr zu erfahren, siehe die Oracle Tutorial. Und die Suche Stack Overflow für viele Beispiele und Erklärungen. Spezifikation JSR 310.
Können Sie exchange java.Zeit Objekte direkt mit Ihrer Datenbank. Verwenden Sie eine JDBC-Treiber kompatibel mit JDBC 4.2 oder später. Keine Notwendigkeit für Streicher, keine Notwendigkeit für
java.sql.*
Klassen.Wo erhalten Sie die java.Zeit-Klassen?
Den ThreeTen-Extra Projekt erweitert die java.mal mit zusätzlicher Klassen. Dieses Projekt ist ein Testgelände für mögliche künftige Erweiterungen zu java.Zeit. Sie finden möglicherweise einige nützliche Klassen, die hier wie
Interval
YearWeek
YearQuarter
und mehr.InformationsquelleAutor der Antwort Basil Bourque
Gibt es ein Problem, wenn DateFormatSymbols Klasse für seine Methode getMonthName auf Monat von Name it zeigen Monat durch die Anzahl der in einigen Android-Geräten. Ich habe dieses Problem behoben, indem Sie tun auf diese Weise:
In String_array.xml
In der Java-Klasse rufen Sie einfach das array wie folgt Weg:
Happy Coding 🙂
InformationsquelleAutor der Antwort Faakhir
InformationsquelleAutor der Antwort Diogo Oliveira