擅长:python、mysql、java
<p>在你的时间比较中,你试图将苹果与桔子进行比较:</p>
<pre><code>>>> import time
>>> a=time.localtime()
>>> a
time.struct_time(tm_year=2016, tm_mon=11, tm_mday=11, tm_hour=12, tm_min=20, tm_sec=13, tm_wday=4, tm_yday=316, tm_isdst=0)
>>> type(a)
<type 'time.struct_time'>
>>> from datetime import datetime
>>> b=datetime.strptime('2016/11/11 12:20:13',"%Y/%m/%d %H:%M:%S")
>>> b
datetime.datetime(2016, 11, 11, 12, 20, 13)
>>> type(b)
<type 'datetime.datetime'>
</code></pre>
<p>如果比较这两种不同的类型time.struct_time和datetime.datetime,即使这些对象中记录的时间相同,也会看到它为false。</p>
<pre><code>>>> a == b
False
</code></pre>
<p>如果将结构时间转换为日期时间,则比较将起作用:</p>
<pre><code>>>> datetime.fromtimestamp(time.mktime(a))
datetime.datetime(2016, 11, 11, 12, 20, 13)
>>> c=datetime.fromtimestamp(time.mktime(a))
>>> b==c
True
>>> type(c)
<type 'datetime.datetime'>
</code></pre>
<p>我建议您使用time.sleep()函数,而不是循环并不断比较当前时间和闹钟时间。从你的报警时间中减去当前时间,然后再睡眠几秒钟。</p>