Ansible では、日付形式を DD-MM-YYYY から YYYY-MM-DD に戻します。

Ansible では、日付形式を DD-MM-YYYY から YYYY-MM-DD に戻します。

私がこの文字列を持っているとしましょう22-12-2021

Ansibleで動作したいです2021-12-22

これを行う方法があるかどうかご存知ですか?

ベストアンサー1

Ansibleで文字列を操作する方法には、次のようなさまざまなオプションがあります。

    - set_fact:
        d2: "{{ _a.2 }}-{{ _a.1 }}-{{ _a.0 }}"
      vars:
        d1: 22-12-2021
        _a: "{{ d1.split('-') }}"

与えられた

  d2: '2021-12-22'

同じ結果を提供する素晴らしい1行コード(クレジット@ 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'

そして使用時間文字列形式をフィルタリングします。

      set_fact:
        d2: "{{ (d1|to_datetime('%d-%m-%Y')).strftime('%Y-%m-%d') }}"

与えられた

  d2: '2021-12-22'

おすすめ記事