summaryrefslogtreecommitdiffstats
path: root/lib/ansible/plugins/filter/to_datetime.yml
blob: dbd476a1d8229405ab5c2981cf8ba4b0e8c0159f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
DOCUMENTATION:
  name: to_datetime
  version_added: "2.4"
  short_description: Get C(datetime) from string
  description:
    - Using the input string attempt to create a matching Python C(datetime) object.
  notes:
    - For a full list of format codes for working with Python date format strings, see
      L(the Python documentation, https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior).
  positional: _input
  options:
    _input:
      description: A string containing date time information.
      type: str
      required: true
    format:
      description: C(strformat) formatted string that describes the expected format of the input string.
      type: str

EXAMPLES: |

  # Get total amount of seconds between two dates. Default date format is %Y-%m-%d %H:%M:%S but you can pass your own format
  secsdiff: '{{ (("2016-08-14 20:00:12" | to_datetime) - ("2015-12-25" | to_datetime("%Y-%m-%d"))).total_seconds()  }}'

  # Get remaining seconds after delta has been calculated. NOTE: This does NOT convert years, days, hours, and so on to seconds. For that, use total_seconds()
  {{ (("2016-08-14 20:00:12" | to_datetime) - ("2016-08-14 18:00:00" | to_datetime)).seconds  }}
  # This expression evaluates to "12" and not "132". Delta is 2 hours, 12 seconds

  # get amount of days between two dates. This returns only number of days and discards remaining hours, minutes, and seconds
  {{ (("2016-08-14 20:00:12" | to_datetime) - ("2015-12-25" | to_datetime('%Y-%m-%d'))).days  }}

RETURN:
  _value:
    description: C(datetime) object from the represented value.
    type: raw