【问题标题】:How to compare time/dates in string form?如何以字符串形式比较时间/日期?
【发布时间】:2017-06-02 19:38:17
【问题描述】:

我正在开发一个基于保存在文本文件中的时间戳启动进程的基本程序。

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

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

稍后我将读取文件,如果当前时间 > 时间戳 + 预设增量(以分钟为单位),那么我将转到脚本的下一部分。

我目前正在自己​​处理这 100%,我编写了一个函数,将字符串和增量拆分为分钟、小时、天、月和年,并将它们加在一起。

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

我不喜欢当前的时间和日期格式,只要功能存在,我愿意对其进行不同的格式设置。

【问题讨论】:

    标签: python date datetime


    【解决方案1】:

    strftime 具有将字符串转换为日期时间对象的相反功能 - 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-25
      • 2012-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多