Image comme ci-dessous
2019-01-07 00: 00: 00
⇒Mardi
Cet article m'a semblé utile, alors je l'ai presque copié et exécuté. Obtenir le jour et le mois de la date en Python sous forme de chaîne de caractères (japonais, anglais, etc.)
Il semble que vous puissiez l'obtenir en changeant la locale avec le module locale.
import datetime import locale dt = datetime.datetime(2018, 1, 1) print(dt) # 2018-01-01 00:00:00 print(dt.strftime('%A, %a, %B, %b')) # Monday, Mon, January, Jan locale.setlocale(locale.LC_TIME, 'ja_JP.UTF-8') print(locale.getlocale(locale.LC_TIME)) # ('ja_JP', 'UTF-8') print(dt.strftime('%A, %a, %B, %b')) #Lundi,Mois,janvier, 1
Il y avait un code de référence comme celui ci-dessus, donc quand je l'ai exécuté, j'ai eu une erreur ...
2018-01-01 00:00:00
Monday, Mon, January, Jan
Traceback (most recent call last):
File ".\time_test.py", line 11, in <module>
locale.setlocale(locale.LC_TIME, 'ja_JP.UTF-8')
File "C:\Users\XXXXX\AppData\Local\Programs\Python\Python37\lib\locale.py", line 604, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
Puisqu'il dit «locale.Error: paramètre de locale non pris en charge», je pense que la langue et la région spécifiées par «setlocale» sont incorrectes.
Vérifiez correctement les arguments passés par setlocale
.
locale --- documentation Python
Tout d'abord, il est dit d'écrire le code suivant.
import locale locale.setlocale(locale.LC_ALL, '')
Si vous changez la partie de locale.setlocale (locale.LC_TIME, 'ja_JP.UTF-8')
pour le style d'écriture ci-dessus ...
time_test.py
import datetime
import locale
dt = datetime.datetime(2018, 1, 1)
print(dt)
# 2018-01-01 00:00:00
print(dt.strftime('%A, %a, %B, %b'))
# Monday, Mon, January, Jan
#locale.setlocale(locale.LC_TIME, 'ja-JP')
locale.setlocale(locale.LC_ALL, '')
print(locale.getlocale(locale.LC_TIME))
print(dt.strftime('%A, %a, %B, %b'))
#Lundi,Mois,janvier, 1
Résultat de sortie
2018-01-01 00:00:00
Monday, Mon, January, Jan
('Japanese_Japan', '932')
Lundi,Mois,janvier, 1
J'ai pu afficher le jour que je voulais obtenir.
Puisque le résultat de sortie est ('Japanese_Japan', '932')
in print (locale.getlocale (locale.LC_TIME))
, on suppose que la cause a été spécifiée par ja_JP
.
locale.setlocale (locale.LC_ALL, '')
Même si je l'ai changé en locale.setlocale (locale.LC_TIME, 'Japanese_Japan.UTF-8')
, il semblait que je pouvais obtenir des résultats japonais, alors je l'ai exécuté.
('Japanese_Japan', 'utf8')
Lundi,Mois,janvier, 1
J'ai pu obtenir les résultats escomptés.
Recommended Posts