Lors de l'écriture du code pour trier les données par ordre chronologique, il a fallu beaucoup de temps pour traiter l'horodatage, y compris le nom anglais du mois, alors prenez note.
Je veux convertir un horodatage en objet datetime afin de comparer les heures, mais un horodatage contenant des noms anglais tels que Jan et Feb ne peut pas être converti tel quel.
Par conséquent, utilisez le module de calendrier pour faire correspondre le nom anglais au mois.
test.py
import datetime
import calendar
timestamp = "Dec 3 14:55:51"
words = timestamp.split(" ")
months = {}
for i ,v in enumerate(calendar.month_abbr):
months[v] = i
time_string = "2015-" + str(months[words[0]]) + "-" + str(words[1]) + " " + words[2]
time_datetime = datetime.datetime.strptime(time_string, '%Y-%m-%d %H:%M:%S')
Cela créera avec succès un objet datetime. Ce n'est pas polyvalent car il a un grand sens de la décision, mais c'est un mémo.
Comme vous l'avez souligné dans les commentaires, il semble que le document datetime contienne la conversion du nom anglais du mois. Je l'ai négligé. 8.1.7. Comportement de strftime () et strptime ()
Nous avons également reçu des informations selon lesquelles si vous utilisez python-dateutil, vous pouvez résoudre le nombre d'année fixe le cas échéant. Merci beaucoup.
Convertir la chaîne <-> date (datetime) en Python Emplacement du nom du mois de l'abréviation anglaise Python (janvier, février, mars, avril…)
Recommended Posts