如何将jq结果中的GMT时间转换为GMT+09(KST)时区
如何将GMT时间转换为GMT+09(KST)时区?
原始输入的GMT时间为 2024-06-07 00:00:00,KST(韩国标准时间)比GMT快9小时,以下是两种实用的转换方法:
方法一:直接用jq处理(需jq 1.6及以上版本)
如果你的jq输出是包含date字段的JSON对象(例如{"date": "2024-06-07 00:00:00"}),可以通过jq的时间函数直接转换:
.date | strptime("%Y-%m-%d %H:%M:%S") | .hour += 9 | strftime("%Y-%m-%d %H:%M:%S")
步骤说明:
strptime("%Y-%m-%d %H:%M:%S"):将字符串格式的日期解析为jq可操作的时间对象.hour += 9:给时间对象的小时数加上9(KST与GMT的时差),jq会自动处理跨天的日期进位(比如GMT 23:00加9小时会自动转为次日08:00)strftime("%Y-%m-%d %H:%M:%S"):将处理后的时间对象重新格式化为字符串
执行后得到的KST时间为 2024-06-07 09:00:00。
方法二:结合shell的date命令处理
如果你的jq版本不支持时间函数,或者更习惯用shell工具,可以先提取日期字符串,再用date命令转换:
示例命令(从JSON文件提取日期并转换):
jq -r '.date' input.json | xargs -I {} date -d "{} GMT +9 hours" +"%Y-%m-%d %H:%M:%S"
直接转换固定时间:
date -d "2024-06-07 00:00:00 GMT +9 hours" +"%Y-%m-%d %H:%M:%S"
步骤说明:
-d "{} GMT +9 hours":指定原始时间为GMT时区,并加上9小时偏移量+"%Y-%m-%d %H:%M:%S":定义输出的日期格式
同样会得到结果 2024-06-07 09:00:00。
内容的提问来源于stack exchange,提问作者jeronimo saint
相关产品推荐
相关产品推荐

