有一种方法可以使用ansible_date_time
比较当前时间
与另一个日期(aws ec2发布时间)所以我将能够知道它是否发生在最后一小时?
我有以下var ec2_launch_time: 2018-01-04T15:57:52+00:00
我知道我可以将天与以下方法进行比较(来自here和here):
"{{ (ansible_date_time.iso8601[:19] | to_datetime('%Y-%m-%dT%H:%M:%S') - ec2_launch_time[:19] | to_datetime('%Y-%m-%dT%H:%M:%S')).days }}"
如果我会 0 我会知道它发生在同一天,但如果日期之间的差异为,我正在寻找一种方法来获得真或假1小时(在同一天)。
有一个过滤器可以用这种或优雅的方式来编写或仅使用shell(如this)?
答案 0 :(得分:2)
通过减去两个日期,您会获得timedelta
Python object。
您可以使用total_seconds
method获取精确的秒数差异。添加一些基本算术来获得完整小时数:
---
- hosts: localhost
gather_facts: no
connection: local
vars:
date_later: 2018-01-05 08:30:00
date_earlier: 2018-01-05 06:50:00
tasks:
- debug:
msg: "{{ ( (date_later - date_earlier).total_seconds() / 3600 ) | int }}"
返回:
ok: [localhost] => {
"msg": "1"
}
在您想要的条件下使用上述表达式。