Bild wie unten
2019-01-07 00: 00: 00
⇒Dienstag
Dieser Artikel schien hilfreich zu sein, also habe ich ihn fast kopiert und ausgeführt. Tag und Monat ab dem Datum in Python als Zeichenfolge abrufen (Japanisch, Englisch usw.)
Es scheint, dass Sie es erhalten können, indem Sie das Gebietsschema mit dem Gebietsschemamodul ändern.
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')) #Montag,Mond,Januar, 1
Es gab einen Referenzcode wie den oben genannten. Als ich ihn ausführte, bekam ich eine Fehlermeldung ...
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
Da dort "locale.Error: nicht unterstützte Gebietsschemaeinstellung" steht, bin ich der Meinung, dass die durch "setlocale" angegebene Sprache und Region falsch sind.
Überprüfen Sie die von setlocale
übergebenen Argumente ordnungsgemäß.
Gebietsschema --- Python-Dokumentation
Zunächst heißt es, den folgenden Code zu schreiben.
import locale locale.setlocale(locale.LC_ALL, '')
Wenn Sie den Teil von locale.setlocale (locale.LC_TIME, 'ja_JP.UTF-8')
in den obigen Schreibstil ändern ...
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'))
#Montag,Mond,Januar, 1
Ausgabeergebnis
2018-01-01 00:00:00
Monday, Mon, January, Jan
('Japanese_Japan', '932')
Montag,Mond,Januar, 1
Ich konnte den Tag anzeigen, den ich bekommen wollte.
Da das Ausgabeergebnis "(" Japanese_Japan "," 932 ")" in "print (locale.getlocale (locale.LC_TIME))" ist, wird angenommen, dass die Ursache durch "ja_JP" angegeben wurde.
locale.setlocale (locale.LC_ALL, '')
Selbst wenn ich es in "locale.setlocale (locale.LC_TIME," Japanese_Japan.UTF-8 ") geändert habe, schien es, als könnte ich japanische Ergebnisse erhalten, also habe ich es ausgeführt.
('Japanese_Japan', 'utf8')
Montag,Mond,Januar, 1
Ich konnte die erwarteten Ergebnisse erzielen.