Added to_datetime filter (#17145)
* Added to_datetime filter * Added to_datetime filter documentation
This commit is contained in:
parent
2ffb136b3f
commit
d80d986a38
2 changed files with 14 additions and 3 deletions
|
@ -412,7 +412,7 @@ Other Useful Filters
|
||||||
|
|
||||||
To add quotes for shell usage::
|
To add quotes for shell usage::
|
||||||
|
|
||||||
- shell: echo {{ string_value | quote }}
|
- shell: echo {{ string_value | quote }}
|
||||||
|
|
||||||
To use one value on true and another on false (new in version 1.9)::
|
To use one value on true and another on false (new in version 1.9)::
|
||||||
|
|
||||||
|
@ -510,6 +510,11 @@ To make use of one attribute from each item in a list of complex variables, use
|
||||||
# get a comma-separated list of the mount points (e.g. "/,/mnt/stuff") on a host
|
# get a comma-separated list of the mount points (e.g. "/,/mnt/stuff") on a host
|
||||||
{{ ansible_mounts|map(attribute='mount')|join(',') }}
|
{{ ansible_mounts|map(attribute='mount')|join(',') }}
|
||||||
|
|
||||||
|
To get date object from string use the `to_datetime` filter, (new in version in 2.2):
|
||||||
|
|
||||||
|
# get amount of seconds between two dates, default date format is %Y-%d-%m %H:%M:%S but you can pass your own one
|
||||||
|
{{ (("2016-08-04 20:00:12"|to_datetime) - ("2015-10-06"|to_datetime('%Y-%d-%m'))).seconds }}
|
||||||
|
|
||||||
A few useful filters are typically added with each new Ansible release. The development documentation shows
|
A few useful filters are typically added with each new Ansible release. The development documentation shows
|
||||||
how to extend Ansible filters by writing your own as plugins, though in general, we encourage new ones
|
how to extend Ansible filters by writing your own as plugins, though in general, we encourage new ones
|
||||||
to be added to core so everyone can make use of them.
|
to be added to core so everyone can make use of them.
|
||||||
|
@ -536,5 +541,3 @@ to be added to core so everyone can make use of them.
|
||||||
Have a question? Stop by the google group!
|
Have a question? Stop by the google group!
|
||||||
`irc.freenode.net <http://irc.freenode.net>`_
|
`irc.freenode.net <http://irc.freenode.net>`_
|
||||||
#ansible IRC chat channel
|
#ansible IRC chat channel
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -34,6 +34,7 @@ import hashlib
|
||||||
import string
|
import string
|
||||||
from functools import partial
|
from functools import partial
|
||||||
from random import SystemRandom, shuffle
|
from random import SystemRandom, shuffle
|
||||||
|
from datetime import datetime
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
@ -116,6 +117,10 @@ def to_bool(a):
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def to_datetime(string, format="%Y-%d-%m %H:%M:%S"):
|
||||||
|
return datetime.strptime(string, format)
|
||||||
|
|
||||||
|
|
||||||
def quote(a):
|
def quote(a):
|
||||||
''' return its argument quoted for shell usage '''
|
''' return its argument quoted for shell usage '''
|
||||||
return pipes.quote(a)
|
return pipes.quote(a)
|
||||||
|
@ -393,6 +398,9 @@ class FilterModule(object):
|
||||||
'to_nice_yaml': to_nice_yaml,
|
'to_nice_yaml': to_nice_yaml,
|
||||||
'from_yaml': yaml.safe_load,
|
'from_yaml': yaml.safe_load,
|
||||||
|
|
||||||
|
#date
|
||||||
|
'to_datetime': to_datetime,
|
||||||
|
|
||||||
# path
|
# path
|
||||||
'basename': partial(unicode_wrap, os.path.basename),
|
'basename': partial(unicode_wrap, os.path.basename),
|
||||||
'dirname': partial(unicode_wrap, os.path.dirname),
|
'dirname': partial(unicode_wrap, os.path.dirname),
|
||||||
|
|
Loading…
Reference in a new issue