2017-10-06 53 views
1

我對代碼有困難,因爲我試圖通過if語句,當我的當前時間EPG_Now大於EPG_Now時間。如果當前時間大於時間,如何檢查if語句

示例:我當前的時間顯示12:38AM不大於12:55AM,所以它不會通過if語句,除非我的當前時間在12:55AM之後。

當我試試這個:

EPG_Time = time.strptime('07/10/2017 12:32AM', '%d/%m/%Y %H:%M%p') 
self.EPG_Now = ['06/10/2017 11:55AM'] 
self.EPG_Next = ['07/10/2017 12:55AM'] 

for EPG_Now, EPG_Next in zip(self.EPG_Now, self.EPG_Next): 
    EPG_Now_time = time.strptime(EPG_Now, '%d/%m/%Y %H:%M%p') 
    EPG_Next_time = time.strptime(EPG_Next, '%d/%m/%Y %H:%M%p 

    if EPG_Time > EPG_Next_time: 
     print "it is time to delete the data from the list......................." 

它總是讓我得到的if語句傳遞時,我的當前時間不大於EPG_Now這是錯誤更大。我想只在當前時間大於EPG_Now時才能通過if語句,然後我想從列表中刪除某些內容。

你能告訴我一個例子,我如何能通過if語句,如果我的當前時間大於EPG_Now時間?

+0

您應該使用'datetime',而不是'time'。 –

+0

哦,謝謝你,你能舉一個我應該用的例子嗎? –

+0

我應該使用什麼就像'datetime.datetime.fromtimestamp(time.mktime(time))'? –

回答

1

您的代碼過度複雜化了一個簡單的問題。試試這個:

>>> EPG_Time = time.strptime('07/10/2017 12:32AM', '%d/%m/%Y %H:%M%p') 
>>> print EPG_Time 
time.struct_time(tm_year=2017, tm_mon=10, tm_mday=7, tm_hour=12, tm_min=32, tm_sec=0, tm_wday=5, tm_yday=280, tm_isdst=-1) 

>>> EPG_Now = time.strptime('06/10/2017 11:55AM', '%d/%m/%Y %H:%M%p') 
>>> print EPG_Now 
time.struct_time(tm_year=2017, tm_mon=10, tm_mday=6, tm_hour=11, tm_min=55, tm_sec=0, tm_wday=4, tm_yday=279, tm_isdst=-1) 

>>> EPG_Next = time.strptime('07/10/2017 12:55AM', '%d/%m/%Y %H:%M%p') 
>>> print EPG_Next 
time.struct_time(tm_year=2017, tm_mon=10, tm_mday=7, tm_hour=12, tm_min=55, tm_sec=0, tm_wday=5, tm_yday=280, tm_isdst=-1) 

>>> EPG_Time > EPG_Next 
False 

這和我們預期的完全一樣。我認爲你並沒有粘貼你正在運行的代碼 - 你在第7行錯過了')。也許你的代碼與你原來的問題不一致。

+0

您可以請發佈我應該使用的代碼而不是我的代碼嗎? –

0

下可能會幫助你解決時間的字符串表示:

from datetime import datetime 

# Assume you have a list of datetime strings 
#  Format: year-month-day-hour-minute-second 
time_strs = ['2017-03-17-10-31-05', '2017-02-17-10-50-25'] 

# Extract each datetime unit and convert to ints 
time_units = [[int(v) for v in dt.split("-")] for dt in time_strs] 

# Create datetime objects from those units 
time_objs = [datetime(*units) for units in time_units] 

# You can now compare 
if time_objs[1] > time_objs[0]: 
    print(time_strs[1], " > ", time_strs[0]) 
else: 
    print(time_strs[1], " < ", time_strs[0]) 

如果你可以在不同的關卡存儲時間和使用這些值,您應該使用日期時間被別人的建議。例如:

import time 
from datetime import datetime 

past = datetime.now() 

# Assume you slept for 10 seconds 
time.sleep(10) 

present = datetime.now() 

if past < present: 
    print("That's how time works!") 
+0

因爲你有輸入'2017-03-17-10-31-05','2017-02-17-10-50-25',所以我不知道在哪裏可以找到更改小時和分鐘,因爲這是看到一團糟 –

相關問題