How to check if the difference between 2 dates is

2019-04-08 01:57发布

问题:

I am using jinja2 templates (with Ansible) and in it i require to check the difference between two dates. I do not have the epoch of the dates but i do have them in yyy-mm-dd HH:MM:ss format (no milliseconds). So my questions:

1) Is there a way in jinja2 to compare two dates ? I do not want to install any library, it has to be a built in feature.

2) If it cannot be done via jinja2, is there a quick logic i can implement to compare them ? Like converting to epoch ? (remember, no milliseconds)

回答1:

Building on @konstantin-suvorov's answer, you'll want to use the to_datetime filter.

{{ (date1|to_datetime - date2|to_datetime).days }}


回答2:

Playbook:

- hosts: localhost
  tasks:
    - template: src=date.j2 dest=date.txt
      vars:
        date1: 2016-08-04 20:00:12
        date2: 2015-10-06 21:00:12

Template:

days {{ (date1 - date2).days }}

Output:

days 302