Templates, dates and times
This Pull Request
- Query JSON Test
with a restsensor and avalue_template:. - Use a
time_datesensor and a template{{ strptime(states('sensor.date'), '%Y-%m-%d').year }}. - Write a script in language X and use it with the
commandsensor or usedate +"%Y"as acommand:.
We want it simpler, right? Templating offers now() and utcnow(). We will stick with now() in this blog post but it applies to utcnow() as well. Our documentation said:
`now()` will be rendered as current time in your time zone.
Hmmm, …OK, that’s a start. How to get the year? {{ now() }} gives you 2017-10-14 20:27:23.700401+02:00 which is far more than we are looking for. As an user you don’t want to dive into the code but there would you find the solution. You will get a Python datetime object{{ now() }}. This means that you can access more than you think in a template:
- For the time:
now().microsecond,now().second,now().minuteandnow().hour - For the date:
now().day,now().monthandnow().year - Misc:
now().weekday()andnow().isoweekday()
For the year it would be: {{ now().year }}. I guess that there are rare use cases for now().resolution, now().min and now().max too.
Hacktoberfest is still running. Working on the documentation is pretty easy. If you know a nice trick, want to help improving the page of a platform or just fix typo then please do. Our Website/Documentation section contains some requirements which are defined in the Documentation Standards and the “Create a page” documentation for other useful details.
Thanks to Egor Tsinko