首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较当前时间和epg时间的结果

比较当前时间和epg时间的结果
EN

Stack Overflow用户
提问于 2017-10-10 00:41:56
回答 2查看 113关注 0票数 0

我有一个问题,把时间和EPG时间进行比较。当我当前的时间显示2017-10-10 01:23:00,当我的EPG时间显示2017-10-10 06:00:00,即早上的6:00AM和当前的时间显示1:23AM时,它总是会传递if语句,所以我不知道为什么。

当我尝试这个:

代码语言:javascript
复制
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时间进行比较吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-10 00:51:49

首先,strptime()的格式字符串与实际字符串不一致。我猜那是个错误。

其次,datetime.datetime包含自己的strptime()函数,因此不需要从时间戳转换:

代码语言:javascript
复制
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时间进行比较,以确定是否需要执行所需的操作:

代码语言:javascript
复制
if EPG_Next <= datetime.now():
    print "it is time to delete the data from the list..........."
票数 1
EN

Stack Overflow用户

发布于 2017-10-10 00:50:00

您不能从分析中获得好的值,因为格式化程序的格式不正确。对于这两个格式化程序,您都应该使用

代码语言:javascript
复制
'%Y-%m-%d %I:%M%p'

这个比较应该很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46657009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档