문제는 내가 그 시간에 날짜와 유일한 요소를 무시하기를 원한다는 것입니다.datetime에서 시간을 추출하여 시간이 아닌 날짜가 범위 내에 있는지 확인하십시오.
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
을있는 그대로, 나는이 오류를 얻을 : 나는에 해당 줄 변경하면
TypeError: argument must be 9-item sequence, not datetime.datetime
가 :
str_time = time.strptime(Datetime, "%m/%j/%y %H:%M")
를 내가이 오류를 : 여기에 내가 무엇을 가지고
TypeError: descriptor 'time' requires a 'datetime.datetime' object but received a 'int'
두 개의 차이점을 알고 있습니다. 전자 도서관이나 기타 등등, 그러나 나는 그들 사이의 변환 방법이나 내가 오직 하나를 사용하여하고 싶은 것을 성취하는 방법을 모르겠다. 난 그냥 날짜를 무시하고 시간이 지정된 범위 내에 있는지 확인하십시오. 파이썬 2.6은 필자가 코드의 다른 곳에서 사용하고있는 라이브러리 때문에 반드시 사용해야한다.
감사! 감사합니다! – Dan