String
在 Ansible 中將日期從 DD-MM-YYYY 重新格式化為 YYYY-MM-DD
假設我有這個字元串
22-12-2021
。我希望它
2021-12-22
與 Ansible 一起使用。知道是否有辦法這樣做嗎?
如何在 Ansible 中操作字元串有很多選擇,例如
- set_fact: d2: "{{ _a.2 }}-{{ _a.1 }}-{{ _a.0 }}" vars: d1: 22-12-2021 _a: "{{ d1.split('-') }}"
給
d2: '2021-12-22'
這是一個很好的單線(信用@Sijaan Hallak),它給出了相同的結果
- set_fact: d2: "{{ d1.split('-')[::-1]|join('-') }}" vars: d1: 22-12-2021
下一個選項是處理日期和時間函式,例如創建日期對象
set_fact: d2: "{{ d1|to_datetime('%d-%m-%Y') }}" vars: d1: 22-12-2021
給
d2: '2021-12-22 00:00:00'
並使用strftime過濾器來格式化字元串,例如
set_fact: d2: "{{ (d1|to_datetime('%d-%m-%Y')).strftime('%Y-%m-%d') }}"
給
d2: '2021-12-22'