Ansible:比较最后一小时的两个日期之间的差异

时间:2018-01-04 19:05:23

标签: date amazon-ec2 time ansible jinja2

有一种方法可以使用ansible_date_time比较当前时间 与另一个日期(aws ec2发布时间)所以我将能够知道它是否发生在最后一小时?

我有以下var ec2_launch_time: 2018-01-04T15:57:52+00:00

我知道我可以将与以下方法进行比较(来自herehere):

"{{ (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)?

1 个答案:

答案 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"
}

在您想要的条件下使用上述表达式。