Python-Kalender: Wochentag/Monats-Namen, die in bestimmten Gebietsschema
Spiele ich mit Python Kalender - Modul ist in der standard-Bibliothek. Im Prinzip brauche ich eine Liste mit allen Tagen eines Monats, etwa so:
>>> import calendar
>>> calobject = calendar.monthcalendar(2012, 10)
>>> print calobject
[[1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14], [15, 16, 17, 18, 19, 20, 21], [22, 23, 24, 25, 26, 27, 28], [29, 30, 31, 0, 0, 0, 0]]
Was ich jetzt auch brauchen, sind die Namen des Monats und der Tage in einem bestimmten Gebietsschema. Ich habe nicht einen Weg finden, wie diese aus der calobject
selbst - aber ich war in der Lage, Sie in etwa so:
>>> import calendar
>>> calobject = calendar.LocaleTextCalendar(calendar.MONDAY, 'de_DE')
>>> calobject.formatmonth(2012, 10)
' Oktober 2012\nMo Di Mi Do Fr Sa So\n 1 2 3 4 5 6 7\n 8 9 10 11 12 13 14\n15 16 17 18 19 20 21\n22 23 24 25 26 27 28\n29 30 31\n'
So Oktober
ist die de_DE
name für Oktober. Fein. Die Informationen müssen da sein. Ich Frage mich, ob ich zugreifen kann, dass der name des Monats irgendwie auf einer Ebene calendar
- Objekt anstelle eines calendar.LocaleTextCalendar
Objekt. Das erste Beispiel (mit der Liste) ist wirklich das, was ich brauche und ich mag nicht die Idee, zwei Kalender-Objekte zu erhalten, lokalisierte Namen.
Hat jemand eine kluge Idee?
calendar.month_name[month]
, wo month
ist die ganze Zahl für den Monat.Dank Alok. Ja, aber es ist in der Standard-Gebietsschema dann
InformationsquelleAutor Daniel | 2012-10-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist aus dem Quellcode von der
calendar
Modul:TimeEncoding
undmonth_name
können importiert werden, von dercalendar
Modul. Dies gibt die folgende Methode:Für mich die Dekodier-Schritt ist nicht erforderlich, einfach drucken
month_name[3]
imTimeEncoding
Kontext druckt "mars", das ist Norwegisch für "März".Für Wochentage gibt es eine ähnliche Methode unter Verwendung der
day_name
undday_abbr
dicts:day_name
.Ich denke, ich werde fest die Namen für Monate und Tage (nimmt zwei Zeilen code). Wir müssen nur in Deutsch und das Monat/Tag-Namen sind kaum ändern in den nächsten Jahren. Trotzdem danke.Kein problem. Obwohl Sie nicht brauchen, nun die Antwort ist hier für die nächste person, die es braucht.
Ja. Es ist einfach zu kompliziert. Ich dachte, es ist eine einfache Möglichkeit, auf diese Informationen zuzugreifen, wie die Einrichtung eines Kalender-Instanz mit einem bestimmten Gebietsschema.
In pyhton3
TimeEncoding
umbenannt, umdifferent_locale
. Es funktioniert auch ein wenig anders, diedecode
Anruf wird nicht mehr benötigt.InformationsquelleAutor Lauritz V. Thaulow
Ha! Einen einfachen Weg gefunden, um lokalisierte Tages - /Monats-Namen:
TimeEncoding
Kontext ist einfach eine Möglichkeit, vorübergehend festlegen der locale-Einstellung. Wenn Sie wollen, dass es dauerhafte, ruftsetlocale
direkt ist ok. Ich vermute, dass die Codierung Schritt ist nur erforderlich, wenn Sie haben, die unicode-Zeichen in die Monat - /Tag-Namen, die scheint es nicht in Deutsch.Oh, okay. Ja, wir haben unicode-Zeichen: >>> Kalender.month_name[3] 'M\xc3\xa4rz'
InformationsquelleAutor Daniel
Hier ist der Monat Teil Lauritz Antwort-Aktualisierung für Python 3:
InformationsquelleAutor Thomas Parslow