我想比较两个日期和时间,然后将这些信息用于其他内容。就像if delta > 23
小时这样做,elif delta > 11
小时,那样做等等。我认为这是一种合理的写法,但是python不会接受它!它说:
ValueError: 'h' is a bad directive in format '%m/%d/%Y%h:%m:%s'
h
不是用Python编写小时的标准方法吗? :○
我的日期是用这种格式写的:“12/28/13 16:49:19”,“m / d / y h:m:s”如果有任何帮助的话!
from datetime import datetime
date_format = "%m/%d/%Y%h:%m:%s"
then=(dictionary["date"])
now= time.strftime("%c")
a = datetime.strptime(str(then), date_format)
b = datetime.strptime(str(now), date_format)
delta = b - a
print(delta.hour)
答案 0 :(得分:7)
24小时格式是%H
,大写H,不是小写。分钟和秒钟相同。你也需要一个空格,你有一年的格式没有世纪,所以使用小写y
:
date_format = "%m/%d/%y %H:%M:%S"
请参阅strftime()
and strptime()
behaviour documentation。 %h
不作为格式字符存在。
而不是使用time.strftime('%c')
来代表 now ,而是再次解析它,使用:
b = datetime.now()
datetime.timedelta
个对象不具有 hours
属性;从delta中的总秒数计算小时数:
delta = b - a
print(delta.total_seconds() // 60)
或将delta
对象与另一个timedelta()
进行比较:
if delta > timedelta(hours=23):
演示:
>>> from datetime import datetime
>>> date_format = "%m/%d/%y %H:%M:%S"
>>> datetime.strptime('12/28/13 16:49:19', date_format)
datetime.datetime(2013, 12, 28, 16, 49, 19)