如何使用Ansible计算指定格式两个日期变量之间的秒数差
解决Ansible自定义格式日期的秒数差计算问题
Ansible 的 to_datetime 过滤器默认使用 %Y-%m-%d %H:%M:%S 格式解析日期,你遇到报错是因为输入日期格式和默认格式不匹配,可通过传入自定义格式参数解决:
- 你当前使用的
MM/DD/YYYY HH:MM:SS.sss格式日期,对应的解析格式串为%m/%d/%Y %H:%M:%S.%f%m匹配两位数月份%d匹配两位数日期%Y匹配四位数年份%H匹配24小时制小时%M匹配分钟%S匹配秒%f匹配微秒,可兼容3位毫秒的输入场景
- 如果你的日期规则为
DD/MM/YYYY,把格式串中的%m和%d位置互换即可。
完整示例代码
- name: 计算自定义格式日期的秒数差 hosts: localhost gather_facts: false vars: date1: "06/01/2021 00:10:15.434" date2: "06/01/2021 00:10:26.667" tasks: - name: 输出时间差计算结果 debug: msg: "两个日期的秒数差为 {{ (date2 | to_datetime('%m/%d/%Y %H:%M:%S.%f') - date1 | to_datetime('%m/%d/%Y %H:%M:%S.%f')).total_seconds() }}"
运行后输出结果为11.233,符合预期。
内容的提问来源于stack exchange,提问作者Sumith
相关产品推荐
相关产品推荐

