Bei einer Webanwendung mit Datenbank lass ich mir das aktuelle Datum mittels ``datetime(CURRENT_TIMESTAMP, 'localtime')`` in die sqlite DB eintragen. Um das Datum zu Verwenden bzw. damit zu arbeiten, wandle ich den String wieder in ein datetime Objekt um. Das Problem ist nun, wenn ich mittels ``setlocale`` mir das deutsche Datum anzeigen lasse, dann hab ich in einer anderen Funktion, welche einen Zufallstring produziert, massive Probleme. Es werden keine Kleinbuchstaben mehr generiert, sondern irgendwelche Hieroglyphen.
Um das Theater zu umgehen, verwende ich z.Z. ``replace``. Gibt es da einen einfacheren Weg und warum werden solche Sonderzeichen ausgegeben?
Hier mal ein Beispiel:
Code: Alles auswählen
#!/usr/bin/env python
# coding: utf-8
import datetime
import locale
import random
import string
#locale.setlocale(locale.LC_ALL, '')
print ''.join([random.choice(string.lowercase) for i in range(10)])
monate = {
'January': 'Januar',
'February': 'Februar',
'March': 'März',
'April': 'April',
'May': 'Mai',
'June': 'Juni',
'July': 'Juli',
'August': 'August',
'September': 'September',
'October': 'Oktober',
'November': 'November',
'December': 'Dezember'
}
now = datetime.datetime.strptime('2015-10-13 11:30:10', '%Y-%m-%d %H:%M:%S')
zeit = now.strftime('%M. %B %Y')
print zeit
for k, v in monate.items():
if k in now.strftime('%M. %B %Y'):
zeit = now.strftime('%M. %B %Y')
zeit = zeit.replace(k, v)
print zeit