使用jq将本地时间解析为Golang RFC 3339

问题描述 投票:0回答:1

我在本地 TZ(欧洲/柏林)有

"2024-12-01 00:00:00"
,并且想将其解析/转换为 Go 的 RFC3339
time.Parse
,这将是
"2024-12-01T00:00:00+01:00"

我尝试过各种变体

strptime("%Y-%m-%d %H:%M:%S") | strflocaltime("%Y-%m-%dT%H:%M:%S%z")

但我无法以合适的格式获取时区,因为 RFC 3339 坚持

:
:

RFC3339     = "2006-01-02T15:04:05Z07:00"

上面的格式返回

2024-12-01T00:00:00+0100

时区中缺少

:

如何从 JQ 表达式中获取正确的时区格式(或解析/转换时间戳以便可以将其输出为 UTC)?

go jq
1个回答
0
投票

使用

%:z
而不是
%z
。 (您还可以将
"%Y-%m-%d
缩短为
%F
,将
%H:%M:%S"
缩短为
%T
):

jq -nr '"2024-12-01 00:00:00" | strptime("%F %T") | strflocaltime("%FT%T%:z")'
2024-12-01T00:00:00+01:00
© www.soinside.com 2019 - 2024. All rights reserved.