Das Problem ist, dass ich will, dass es das Datum und nur Faktor in der Zeit ignoriert. Hier ist, was ich habe:Zeit von datetime extrahieren und bestimmen, ob die Zeit (nicht das Datum) in den Bereich fällt?
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
Wie ist, ich diese Fehlermeldung erhalten:
TypeError: argument must be 9-item sequence, not datetime.datetime
Wenn ich die entsprechende Zeile zu ändern:
str_time = time.strptime(Datetime, "%m/%j/%y %H:%M")
bekomme ich diesen Fehler:
TypeError: descriptor 'time' requires a 'datetime.datetime' object but received a 'int'
Ich weiß, ich arbeite mit zwei diff Bibliotheken oder was auch immer, aber ich bin nicht sicher, wie man zwischen ihnen umwandelt oder was ich tun möchte, nur eins verwendend. Ich möchte nur, dass das Datum ignoriert wird und nur überprüft wird, ob die Zeit innerhalb der angegebenen Bereiche liegt. Python 2.6 ist ein MUSS aufgrund einer Bibliothek, die ich an anderer Stelle im Code verwende.
Danke! Ich schätze es! – Dan