String

在 Ansible 中將日期從 DD-MM-YYYY 重新格式化為 YYYY-MM-DD

  • July 1, 2021

假設我有這個字元串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'

引用自:https://unix.stackexchange.com/questions/656534