# Machine readable duration

**URL:** <https://forum.ansible.com/t/machine-readable-duration/35577>\
**Category:** Ansible Developer\
**Created:** [August 3, 2021, 3:29pm UTC](https://forum.ansible.com/t/machine-readable-duration/35577 "2021-08-03T15:29:18Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Matthew\_Kenigsberg](https://avatars.discourse-cdn.com/v4/letter/m/a587f6/32.png) [@Matthew\_Kenigsberg](https://forum.ansible.com/u/Matthew_Kenigsberg)\
**Post date:** [August 3, 2021, 3:29pm UTC](https://forum.ansible.com/t/machine-readable-duration/35577/1 "2021-08-03T15:29:18Z")

</div>

Following up on [https://github.com/ansible/ansible/pull/75370](https://github.com/ansible/ansible/pull/75370)

I would like a machine readable duration for how long a command runs. I was told I could use existing filters. How would I accomplish that? strftime does not support parsing the output of str(timedelta), which is currently used for duration (see [https://bugs.python.org/issue41254](https://bugs.python.org/issue41254))

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/ansible/original/1X/1882d9a01da5d8996a862359b0913cc568a39b84.svg) [@system](https://forum.ansible.com/u/system)\
**Post date:** [August 3, 2021, 4:46pm UTC](https://forum.ansible.com/t/machine-readable-duration/35577/2 "2021-08-03T16:46:26Z")

</div>

I was not aware of the datetime bug (was thinking to\_datetime &  
strftime), but it is still simple to do in jinja:

&nbsp;&nbsp;&nbsp;- debug: msg='{{seconds}}'  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vars:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d: "{{res['delta'].split(':')}}"  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;seconds : "{{ d[0]|int \* 3600 + d[1]|int \* 60 + d[2]|float }}"

---

<div class="post-metadata">

**Author:** ![Matthew\_Kenigsberg](https://avatars.discourse-cdn.com/v4/letter/m/a587f6/32.png) [@Matthew\_Kenigsberg](https://forum.ansible.com/u/Matthew_Kenigsberg)\
**Post date:** [August 3, 2021, 5:05pm UTC](https://forum.ansible.com/t/machine-readable-duration/35577/3 "2021-08-03T17:05:02Z")

</div>

That doesn’t work for longer periods of time: “2 days, 2:02:02.000002”

It’s definitely possible to parse (right now I’m using regex in Python), it’s just annoying to have to manually write a regex for a non-standard format unique to Python timedeltas

---

<div class="post-metadata">

**Author:** ![Matthew\_Kenigsberg](https://avatars.discourse-cdn.com/v4/letter/m/a587f6/32.png) [@Matthew\_Kenigsberg](https://forum.ansible.com/u/Matthew_Kenigsberg)\
**Post date:** [August 3, 2021, 5:38pm UTC](https://forum.ansible.com/t/machine-readable-duration/35577/4 "2021-08-03T17:38:50Z")

</div>

Makes sense. If it weren’t for backwards compatibility I would definitely vote duration is machine readable, but maybe that’s an issue with str(timedelta). Guess I’ll just use regex 🤷
