2017-06-02 49 views
-3

我正在开发基于保存在文本文件中的时间戳来启动进程的基本程序。如何比较字符串形式的时间/日期?

我使用以下格式,将时间/日期保存到文本文件中:

strftime("%Y/%m/%d %H:%M:%S",localtime()) 

后来,我将读取该文件,并且如果当前时间>时间戳+预设增量(以分钟计),然后我将转到脚本的下一部分。

我目前正在处理这100%,我写了一个函数,将字符串和delta分为几分钟,几小时,几天,几个月和几年,并将它们加在一起。

我想知道有没有更快的方法来做到这一点? python会提供一个我错过的更简单的解决方案吗?

我没有附加到时间和日期的当前格式,我愿意以不同的格式对其进行格式化,只要功能在那里。

回答

1

的strftime有一个字符串转换成datetime对象相反 - strptime,所以你的情况,你可以这样做:

from datetime import datetime, timedelta 
    date_from_file = datetime.strptime(string_from_file, "%Y/%m/%d %H:%M:%S") 

还,请注意,我还导入了“timedelta”,你可以用这样的:

if datetime.now() > date_from_file + timedelta(hours=3): 
     do_something() 

它将检查当前时间是否大于文件中时间后3小时的时间。当然你可以改变

timedelta(hours=3) 

timedelta(minutes=15) 

或其他任何你需要...

我建议在timedelta学习更多,如果你需要更多的东西:https://docs.python.org/2/library/datetime.html