【问题标题】:Ansible time ConversionAnsible 时间转换
【发布时间】:2019-08-09 19:43:25
【问题描述】:

我正在将文件的最后访问时间与 file_date 变量进行比较。
变量:

file_date: '2013-12-12 14:35:02'

剧本:

  - name: set fact
    set_fact:
      time: "{{ (file_date|to_datetime).strftime('%s') }}"

输出如下:

ok: <server> {
    "ansible_facts": {
        "time": "1386876902"
    }, 
    "changed": false
}

但是win_stat输出的最后一次访问时间是

"lastwritetime": 1386858902.

由于时区不同,略有不同。我需要从时间中减去一些值或更改时区。请建议如何做到这一点。

【问题讨论】:

    标签: date time ansible


    【解决方案1】:

    我会将 win_stat 中的 lastwritetime 保存到一个寄存器中,然后使用 set_fact 对其执行数学运算。

    - set_fact:
        math_time: "{{ register_name.lastwritetime - 18000 }}"
    

    根据您的输出,这应该可以工作,因为数字周围没有引号。但如果它作为字符串返回,只需使用 jinja 过滤器将其重新转换为整数,它仍然可以工作。

    - set_fact:
        math_time: "{{ register_name.lastwritetime|int - 18000 }}"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      • 1970-01-01
      • 2012-11-02
      相关资源
      最近更新 更多