Ondersteuning > Programmeren
Datum en tijd in het Nederlands (of andere taal dan Engels) in Python
erik1984:
Volgens de documentatie van Python https://docs.python.org/3/library/datetime.html?highlight=strftime#strftime-strptime-behavior zou het formaat "%a" de afgekorte versie van de weekdag terug moeten geven in de taal van je 'locale'.
Als het goed is heb ik die op Nederlands/Nederland staan:
--- Code: ---erik@erik-desktop:~$ locale
LANG=nl_NL.UTF-8
LANGUAGE=nl:en_US
LC_CTYPE="nl_NL.UTF-8"
LC_NUMERIC=nl_NL.UTF-8
LC_TIME=nl_NL.UTF-8
LC_COLLATE="nl_NL.UTF-8"
LC_MONETARY=nl_NL.UTF-8
LC_MESSAGES="nl_NL.UTF-8"
LC_PAPER=nl_NL.UTF-8
LC_NAME=nl_NL.UTF-8
LC_ADDRESS=nl_NL.UTF-8
LC_TELEPHONE=nl_NL.UTF-8
LC_MEASUREMENT=nl_NL.UTF-8
LC_IDENTIFICATION=nl_NL.UTF-8
LC_ALL=
--- Einde van code ---
Het volgende stukje Python blijft echter stug de Engelse dag gebruiken.
--- Code: ---python3 -c "import locale;import datetime;print(locale.getlocale());print(datetime.date.today().strftime('%a %A'))"
--- Einde van code ---
Geeft:
--- Code: ---('nl_NL', 'UTF-8')
Fri Friday
--- Einde van code ---
Vergelijking met het commando date:
--- Code: ---erik@erik-desktop:~$ date
vr 16 sep 2022 14:09:47 CEST
--- Einde van code ---
Wat zie ik over het hoofd in het Pythonscript?
MKe:
volgens mij is alleen %c, %x en %X in locale format. Misschien kun je het met regex uit %c halen? Ik heb zelf geen enkele computer die in het Nederlands staat, dus ik kan het niet testen.
--- Code: ---re.match(r"^(?P<dag>.+?) .*", datetime.now().strftime("%c")).groupdict()["dag"]
--- Einde van code ---
edit:
blijkbaar kan ik toch locale zetten, ik vermoed dat je python eerst moet vertellen welke locale je wilt gebruiken.
--- Code: --->> import locale
>> locale.setlocale(locale.LC_TIME, "nl_NL")
>> datetime.now().strftime("%a")
'vr'
--- Einde van code ---
bart85:
https://docs.python.org/3/library/locale.html
Het volgende gevonden op bovenstaande link. Het geeft de locale van het systeem aan.
--- Code: --->>> import locale
>>> locale.getdefaultlocale()
--- Einde van code ---
erik1984:
Bedankt voor het meedenken! c% geeft bij mij ook de Engels weekdag aan.
In de interactieve shell krijg ik een error met setlocale:
--- Code: --->>> locale.setlocale(locale.LC_TIME, "nl_NL")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.10/locale.py", line 620, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
--- Einde van code ---
Misschien heeft het met de versie te maken? Ga nog even verder zoeken
erik1984:
--- Citaat van: bart85 op 2022/09/16, 15:46:59 ---https://docs.python.org/3/library/locale.html
Het volgende gevonden op bovenstaande link. Het geeft de locale van het systeem aan.
--- Code: --->>> import locale
>>> locale.getdefaultlocale()
--- Einde van code ---
--- Einde van citaat ---
Jij ook bedankt! Dat lijkt ook de goede locale aan te geven:
--- Code: --->>> import locale
>>> locale.getdefaultlocale()
('nl_NL', 'UTF-8')
--- Einde van code ---
Navigatie
[0] Berichtenindex
[#] Volgende pagina
Naar de volledige versie