Ansible技术求助:如何将时间戳转换为人类可读格式
解决Ansible时间戳转可读格式的问题
你的问题出在变量引用、取值方式和过滤器使用三个环节,修正后的代码如下:
- name: Convert timestamp to a human readable format set_fact: snap_timestamp_converted: "{{ timestamp[0].Timestamp | strftime('%Y-%m-%d %H:%M:%S') }}"
具体修正说明:
- 变量名修正:存储时间戳数据的变量是
timestamp,而非你定义的JSON查询表达式变量snap_timestamp - 正确取值:
timestamp是一个列表,内部元素为{'Timestamp': 1662628573}格式的字典,需要用timestamp[0].Timestamp提取原始时间戳数值 - 过滤器修正:直接对整数类型的时间戳使用
strftime过滤器并传入格式字符串即可,无需额外的to_json转换
如果你的timestamp列表包含多个时间戳元素,可通过循环批量转换:
- name: Convert all timestamps in list set_fact: converted_timestamps: "{{ timestamp | map(attribute='Timestamp') | map('strftime', '%Y-%m-%d %H:%M:%S') | list }}"
内容的提问来源于stack exchange,提问作者LJS
相关产品推荐
相关产品推荐

