如何使用变量使Ansible to_datetime过滤器在循环中工作
我有一个带有日期的项目列表,需要减去日期来计算天数。检查下面如何使用变量使Ansible to_datetime过滤器在循环中工作,date,time,ansible,Date,Time,Ansible,我有一个带有日期的项目列表,需要减去日期来计算天数。检查下面 - name: dump result debug: msg: "{{ ( (ansible_date_time.date|to_datetime('%Y-%m-%d')) - (item['date'] | to_datetime('%Y-%m-%d')) ).days }}" with_items: "{{ key_val }}" 但这会导致以下错误: 致命:[localhost]:失败!=>{
- name: dump result
debug:
msg: "{{ ( (ansible_date_time.date|to_datetime('%Y-%m-%d')) - (item['date'] | to_datetime('%Y-%m-%d')) ).days }}"
with_items: "{{ key_val }}"
但这会导致以下错误:
致命:[localhost]:失败!=>{“msg”:“字段'args'有一个无效值({u'msg':u\”{{item['date'].\u datetime}}\”),无法转换为dict。错误是:时间数据“time Start”与格式“%Y-%m-%d%H:%m:%S”不匹配\n\n错误似乎出现在“/home/script.yml”:第26行第7列,但可能\n出现在文件的其他位置,具体取决于语法问题。\n\n出现问题的行可能是:\n\n\n-name:dump result\n^此处\n“}
即使按如下方式运行,也会得到相同的错误:
msg: "{{ item['date'] | to_datetime }}"
项目[‘日期’]的结构如下:
"2019-02-21 15:33:17"
如果我使用该字符串并使用msg手动调试它,它会工作:
"{{ ('2019-02-21 15:33:17' | to_datetime) }}"
我觉得当我引入一个变量时,它会搞砸。关于使用变量有什么建议吗
当我跑步时:
- name: dump result
debug:
msg: "{{ item['date'] }}"
with_items: "{{ key_val }}"
我得到:
ok: [localhost] => (item={'date': u'2019-02-21 10:13:02', 'id': u'7ae7ec89-1f59-4c89-8d56-36901c2c2d28'}) => {
"msg": "2019-02-21 10:13:02"
}
ok: [localhost] => (item={'date': u'2019-02-21 10:20:11', 'id': u'b8374680-1305-4b08-b14c-ae31cd7a7ce7'}) => {
"msg": "2019-02-21 10:20:11"
}
ok: [localhost] => (item={'date': u'2019-02-21 10:20:39', 'id': u'95521c1b-d2e0-4f8d-bb55-20a2509f5214'}) => {
"msg": "2019-02-21 10:20:39"
}
ok: [localhost] => (item={'date': u'2019-02-21 10:20:44', 'id': u'caf668b1-f457-4efc-aa34-1a9f45218490'}) => {
"msg": "2019-02-21 10:20:44"
}
ok: [localhost] => (item={'date': u'2019-02-21 10:20:47', 'id': u'0dc43b92-0eb2-4ee4-8889-15148c182c01'}) => {
"msg": "2019-02-21 10:20:47"
}
我的某些值包含没有%Y-%m-%d结构的伪字符串。固定和功能 我的某些值包含没有%Y-%m-%d结构的伪字符串。固定和功能 提供完整的MCVE
key_val
变量名表明item['date']
不是字符串。@KonstantinSuvorov我已经添加了对item['date']进行调试的结果,请检查我的编辑。谢谢。提供完整的MCVEkey_val
变量名表明item['date']
不是字符串。@KonstantinSuvorov我已经添加了对item['date']进行调试的结果,请检查我的编辑。谢谢