Vấn đề là tôi muốn nó bỏ qua ngày và chỉ yếu tố trong thời gian. Dưới đây là những gì tôi có:Trích xuất thời gian từ ngày giờ và xác định xem thời gian (không phải ngày) có nằm trong phạm vi không?
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
Như là, tôi nhận được lỗi này:
TypeError: argument must be 9-item sequence, not datetime.datetime
Khi tôi có sự thay đổi liên quan đến:
str_time = time.strptime(Datetime, "%m/%j/%y %H:%M")
tôi nhận được lỗi này:
TypeError: descriptor 'time' requires a 'datetime.datetime' object but received a 'int'
Tôi biết tôi đang làm việc với hai điểm khác biệt các thư viện hay thư rác không rõ ràng, nhưng tôi không chắc chắn cách chuyển đổi giữa chúng hoặc hoàn thành những gì tôi muốn làm chỉ bằng một. Tôi chỉ muốn nó bỏ qua ngày và chỉ kiểm tra xem thời gian có nằm trong phạm vi được chỉ định hay không. Python 2.6 là một PHẢI do một thư viện tôi đang sử dụng ở nơi khác trong mã.
Cảm ơn! Tôi đánh giá cao nó! – Dan