我有一个问题,把时间和EPG时间进行比较。当我当前的时间显示2017-10-10 01:23:00,当我的EPG时间显示2017-10-10 06:00:00,即早上的6:00AM和当前的时间显示1:23AM时,它总是会传递if语句,所以我不知道为什么。
当我尝试这个:
EPG_Time = time.strptime('2017-10-10 01:23AM', '%d/%m/%Y %I:%M%p')
EPG_Time = datetime.datetime.fromtimestamp(time.mktime(EPG_Time))
EPG_Next_time = time.strptime('2017-10-10 06:00AM', '%d-%m-%Y %I:%M%p')
EPG_Next = datetime.datetime.fromtimestamp(time.mktime(EPG_Next_time))
if EPG_Next <= EPG_Time:
print "it is time to delete the data from the list..........."当我的当前时间落后于EPG时间时,它将始终传递if语句。我想传递if语句,因为只有当我的当前时间等于或大于EPG时间(它是06:00AM )时,我才可以从列表中删除数据。
你能给我举个例子吗?我可以把我现在的时间和EPG时间进行比较吗?
发布于 2017-10-10 00:51:49
首先,strptime()的格式字符串与实际字符串不一致。我猜那是个错误。
其次,datetime.datetime包含自己的strptime()函数,因此不需要从时间戳转换:
from datetime import datetime
EPG_Time = datetime.strptime('2017-10-10 01:23AM', '%Y-%m-%d %I:%M%p')
EPG_Next = datetime.strptime('2017-10-10 06:00AM', '%Y-%m-%d %I:%M%p')
if EPG_Next <= EPG_Time:
print "it is time to delete the data from the list..........."在本例中,EPG_Time位于EPG_Next之前,因此不执行print语句。
使用datetime.now()可以获得当前的时间。将其与您的EPG时间进行比较,以确定是否需要执行所需的操作:
if EPG_Next <= datetime.now():
print "it is time to delete the data from the list..........."发布于 2017-10-10 00:50:00
您不能从分析中获得好的值,因为格式化程序的格式不正确。对于这两个格式化程序,您都应该使用
'%Y-%m-%d %I:%M%p'这个比较应该很好。
https://stackoverflow.com/questions/46657009
复制相似问题