我想比较两个日期和时间,然后将这些信息用于其他内容.就像if delta > 23几个小时做这个,elif delta > 11几个小时,那样做等等.我认为这是一种合理的写作方式,但是python不会接受它!它说:
ValueError: 'h' is a bad directive in format '%m/%d/%Y%h:%m:%s'
Run Code Online (Sandbox Code Playgroud)
不是h用Python编写小时的标准方法吗?:○
我的日期是用这种格式写的:"12/28/13 16:49:19","m/d/yh: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)
Run Code Online (Sandbox Code Playgroud)
24小时格式是%H大写H,而不是小写.分钟和秒钟相同.你也需要一个空间,你有一个没有世纪的年份格式,所以使用小写y:
date_format = "%m/%d/%y %H:%M:%S"
Run Code Online (Sandbox Code Playgroud)
请参阅strftime()和strptime()行为文档.%h不作为格式字符存在.
而不是使用现在time.strftime('%c')代表,然后再次解析,使用:
b = datetime.now()
Run Code Online (Sandbox Code Playgroud)
datetime.timedelta对象不具有的hours属性; 从delta中的总秒数计算小时数:
delta = b - a
print(delta.total_seconds() // 60)
Run Code Online (Sandbox Code Playgroud)
或者将delta对象与另一个对比timedelta():
if delta > timedelta(hours=23):
Run Code Online (Sandbox Code Playgroud)
演示:
>>> 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16551 次 |
| 最近记录: |