datetime de python a une fonction strptime ()
qui convertit un type chaîne en type datetime, mais il ne peut pas convertir une chaîne qui n'est pas complétée par des 0.
(«2020/04/03» peut être converti, mais «2020/4/3» ne le peut pas)
Notez qu'il y avait une alternative simple.
Si la pleine largeur est incluse, faites en quelque sorte une demi-largeur pleine largeur avant de l'exécuter. Il existe différentes méthodes, alors choisissez celle que vous aimez.
Utilisez le constructeur datetime au lieu de strptime ()
.
https://docs.python.org/ja/3/library/datetime.html#datetime.datetime
class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
import datetime
import re
#Obtenir une liste de nombres contenus dans une chaîne
l = re.findall(r"\d+", text)
#Faire une liste de chaînes une liste de nombres
l = [int(s) for s in l]
#Spécifiez la date et l'heure avec le constructeur de type datetime (développez la liste et transmettez-la)
date = datetime.datetime(*l)
import datetime
import re
text = "2020/4/2"
l = re.findall(r"\d+", text)
# l : ["2020", "4", "2"]
l = [int(s) for s in l]
# l : [2020, 4, 2]
date = datetime.datetime(*l)
# date = datetime.datetime(2020, 4, 2)
Peut être utilisé pour la conversion du calendrier japonais en calendrier occidental (Il faut correspondre à la "première année")
import datetime
import re
text = "3 avril, 2e année de Reiwa"
diff = 0
if text[:2]=="Reiwa":
diff = 2018
else:
# hoge
pass
l = re.findall(r"\d+", text)
l = [int(s) for s in l]
l[0] += diff
date = datetime.datetime(*l)
Recommended Posts