python中时间对象之间的差异?
这两种说法的区别是什么:python中时间对象之间的差异?,python,django,datetime,Python,Django,Datetime,这两种说法的区别是什么: import datetime print datetime.datetime.now() datetime.datetime(2015,1,28,12,32,9762118) datetime.time(12,33,3693084) 实际上,我想将django模型的时间域与当天少1小时的时间进行比较。我的代码片段与此相同: Mymodel.objects.filter( follow_up_date=datetime.datetime.now
import datetime
print datetime.datetime.now()
datetime.datetime(2015,1,28,12,32,9762118)
datetime.time(12,33,3693084)
实际上,我想将django模型的时间域与当天少1小时的时间进行比较。我的代码片段与此相同:
Mymodel.objects.filter(
follow_up_date=datetime.datetime.now().date,
# commented now
# preferred_time__lt=(
# datetime.datetime.now() - datetime.timedelta(hours=1)),
preferred_time__lt=(datetime.time(datetime.now()) - datetime.timedelta(hours=1)),
)
Mymodel:
class Mymodel(models.Model):
follow_up_date = models.DateField("Follow up Date",null=True,blank=True)
preferred_time = models.TimeField(_("Preferred time"),default=now,
null=True,blank=True)
我正在尝试提取当天计划的所有实例,它们的首选时间只经过了1小时。哪一个应该是“首选时间”的正确过滤器?我对注释的代码得到了错误的结果。我不清楚
这是一个cron作业,即在django中每1小时运行一次管理命令
datetime.datetime(2015, 1, 28, 12, 32, 9, 762118)
您有一个datetime对象。它有日期(前三个数字)和时间(后四个数字)
你提到的第二件事:
datetime.time(12, 33, 3, 693084)
这只是时间部分
要比较时间字段
,只需要时间组件;对于日期字段
,只需日期组件
在代码中,您有以下datetime.datetime.now().date
这只是内置函数date
的名称。你需要称之为:
>>> datetime.datetime.now().date
<built-in method date of datetime.datetime object at 0xb74ac9b0>
>>> datetime.datetime.now().date()
datetime.date(2015, 1, 28)
最后,您的过滤器将如下所示:
filter_date = datetime.datetime.now().date()
filter_time = (datetime.datetime.now() - datetime.timedelta(hours=1)).time()
Mymodel.objects.filter(follow_up_date=filter_date,
preferred_time__lt=filter_time)
有三种不同的类型:
datetime。date
对应于日历日期,因此您可以存储年、月和月的哪一天<代码>日期时间。时间是一天的时间,包括小时、分钟、秒和微秒。和datetime.datetime
将两者结合在一起,并为您提供实际日历日期的时间。注意:datetime.time(datetime.now())
是正确调用datetime.now().time()
的另一种拼写。请不要删除表示本地时间的原始日期时间对象。操作数可能具有不同的UTC偏移量,例如,在DST转换的对侧--它可能会产生错误的结果(通常为一小时)。请参阅中的说明,您确定datetime.time(datetime.now())
?我得到类型错误:需要一个整数
@J.F.SebastianI,我确定。完全按照问题和我的评论中显示的方式运行代码。思考为什么方法中的第一个参数在Python中被称为self
>>> datetime.datetime.now().date
<built-in method date of datetime.datetime object at 0xb74ac9b0>
>>> datetime.datetime.now().date()
datetime.date(2015, 1, 28)
>>> (datetime.datetime.now() - datetime.timedelta(hours=1)).time()
datetime.time(9, 27, 16, 93746)
filter_date = datetime.datetime.now().date()
filter_time = (datetime.datetime.now() - datetime.timedelta(hours=1)).time()
Mymodel.objects.filter(follow_up_date=filter_date,
preferred_time__lt=filter_time)