Extrait de le temps de datetime et de déterminer si le temps (pas de date) se situe dans la gamme?
Le problème est que je veux qu'il ignore la date et le seul facteur dans le temps. Voici ce que j'ai:
import time
from time import mktime
from datetime import datetime
def getTimeCat(Datetime):
# extract time categories
str_time = datetime.strptime(Datetime, "%m/%j/%y %H:%M")
ts = datetime.fromtimestamp(mktime(str_time))
# --> Morning = 0400-1000
mornStart = datetime.time(4, 0, 1)
mornEnd = datetime.time(10, 0, 0)
# --> Midday = 1000-1600
midStart = datetime.time(10, 0, 1)
midEnd = datetime.time(16, 0, 0)
# --> Evening = 1600-2200
eveStart = datetime.time(16, 0, 1)
eveEnd = datetime.time(22, 0, 0)
# --> Late Night = 2200-0400
lateStart = datetime.time(22, 0, 1)
lateEnd = datetime.time(4, 0, 0)
if time_in_range(mornStart, mornEnd, ts):
timecat = 0 #morning
elif time_in_range(midStart, midEnd, ts):
timecat = 1 #midday
elif time_in_range(eveStart, eveEnd, ts):
timecat = 2 #evening
elif time_in_range(lateStart, lateEnd, ts):
timecat = 3 #late night
return timecat
Aussi, j'obtiens cette erreur:
TypeError: argument must be 9-item sequence, not datetime.datetime
Lorsque je change la ligne correspondant à:
str_time = time.strptime(Datetime, "%m/%j/%y %H:%M")
J'obtiens cette erreur:
TypeError: descriptor 'time' requires a 'datetime.datetime' object but received a 'int'
Je sais que je suis en train de travailler avec deux types de bibliothèques ou autres joyeusetés, mais je ne suis pas sûr de comment faire pour convertir entre eux ou d'accomplir ce que je veux faire uniquement à l'aide de l'un. J'ai juste envie d'ignorer la date et ne vérifiez si le temps est dans les plages spécifiées. La version 2.6 de Python est un must en raison d'une bibliothèque que j'utilise ailleurs dans le code.
OriginalL'auteur Dan | 2013-04-22
Vous devez vous connecter pour publier un commentaire.
Cette ligne:
renvoie une
datetime
objet selon les docs.Vous pouvez tester vous-même en exécutant la commande suivante de manière interactive dans l'interpréteur:
La partie heure de retour datetime peut ensuite être consulté à l'aide de la
.time()
méthode.La
datetime.time()
résultat peut ensuite être utilisés dans les comparaisons.OriginalL'auteur Austin Phillips