【问题标题】:Compare only time part in datetime - Python仅比较日期时间中的时间部分 - Python
【发布时间】:2013-02-27 05:51:13
【问题描述】:

我只想比较日期时间中的时间部分。我有不同的日期,只有时间字段可以比较。由于日期不同,我只想考虑时间部分所以我认为创建两个日期时间对象无济于事。 我的字符串为

start="22:00:00"
End="03:00:00"
Tocompare="23:30:00"

上面是我用日期时间转换为字符串时的字符串

dt=datetime.strptime(start,"%H:%M:%S")

它给了

1900-01-01 22:00:00

这是python中的默认日期。 所以我需要避免这一切,只想要时间部分。我只需要检查我的Tocompare 是否介于startEnd 之间

【问题讨论】:

    标签: python datetime python-2.x


    【解决方案1】:

    只需调用datetime 对象的.time() 方法 即可获取它们的小时、分钟、秒和微秒。

    dt = datetime.strptime(start,"%H:%M:%S").time()
    

    【讨论】:

      【解决方案2】:

      使用datetime.time()比较他们的时间。

      【讨论】:

      【解决方案3】:
      import datetime
      
      start = datetime.datetime.strptime(start, '%H:%M:%S')
      start = datetime.time(start.hour, start.minute,start.second)
      
      tocompare = datetime.datetime.strptime(tocompare, '%H:%M:%S')
      tocompare = datetime.time(tocompare.hour, tocompare.minute, tocompare.second)
      
      start > tocompare # False
      

      【讨论】:

        猜你喜欢
        • 2011-02-11
        • 2011-12-02
        • 2012-07-22
        • 1970-01-01
        • 2010-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-20
        相关资源
        最近更新 更多