Added to_datetime filter (#17145)

* Added to_datetime filter

* Added to_datetime filter documentation
This commit is contained in:
Roman Belyakovsky 2016-09-01 03:51:03 +04:00 committed by Michael Scherer
parent 2ffb136b3f
commit d80d986a38
2 changed files with 14 additions and 3 deletions

View file

@ -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
{{ 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
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.
@ -536,5 +541,3 @@ to be added to core so everyone can make use of them.
Have a question? Stop by the google group!
`irc.freenode.net <http://irc.freenode.net>`_
#ansible IRC chat channel

View file

@ -34,6 +34,7 @@ import hashlib
import string
from functools import partial
from random import SystemRandom, shuffle
from datetime import datetime
import uuid
import yaml
@ -116,6 +117,10 @@ def to_bool(a):
else:
return False
def to_datetime(string, format="%Y-%d-%m %H:%M:%S"):
return datetime.strptime(string, format)
def quote(a):
''' return its argument quoted for shell usage '''
return pipes.quote(a)
@ -393,6 +398,9 @@ class FilterModule(object):
'to_nice_yaml': to_nice_yaml,
'from_yaml': yaml.safe_load,
#date
'to_datetime': to_datetime,
# path
'basename': partial(unicode_wrap, os.path.basename),
'dirname': partial(unicode_wrap, os.path.dirname),