使用time.strf()获取当前时间,并在此基础上进行构建

时间:2016-08-13 12:32:09

标签: python-3.x

我的代码如下:

<div data-bind="foreach: sequences">
    <!-- ko if: $parent.sequences.length-1 > $index() -->
        <div>Some content </div>
        <div data-bind="text: $data"></div>
    <!-- /ko -->        
</div>

问题是,我知道如何获得当前时间。我希望它看起来像:

interval_time=int(input('how many seconds each interval?'))
print(time.strftime("%H:%M"))
while time.strftime("%H:%M")!=str('19:45'):
    time.sleep(interval_time)
    winsound.PlaySound("SystemExit",winsound.SND_ALIAS)    
winsound.PlaySound("SystemEnter",winsound.SND_ALIAS)

我知道如何转换分钟,但它会不断重新占用当前时间并增加30分钟。如何使初始time.strf()保持不变?

非常感谢!

1 个答案:

答案 0 :(得分:0)

您已经决定使用字符串表示时间来更难完成此任务。由于这些字符串没有日期概念,因此对它们执行与日期相关的操作很麻烦。作为替代方案,您应该使用专门用于处理日期和时间的库,即datetime

Boilerplate代码如下所示:

from datetime import datetime, timedelta

thirty_minutes_later = datetime.now() + timedelta(minutes=30)
while datetime.now() < thirty_minutes_later:
    pass  # do something

此处,datetime.now返回表示当前时间的特殊对象。 timedelta会返回特殊对象,当从datetime个实例添加或减去该对象时,会返回另一个datetime,并根据timedelta的状态进行时间转换。

另外,请注意我已将您的状况从不等于改为大于 - 即使您赢了&#39;它也会停止处理。准确地击中你的时间点(并且以毫秒的分辨率,你必须非常幸运地击中它)。