带时区和 jq 的 Strptime

eag*_*gle 2 bash strptime jq

不知道我在这里做错了什么

getting_data | gunzip | jq -r '.time_field | strptime("%Y-%m-%dT%H:%M:%S.%fZ")'
Run Code Online (Sandbox Code Playgroud)

错误返回如下:

jq: error (at <stdin>:0): date "2018-03-13T14:00:17.1614661Z" does not 
match format "%Y-%m-%dT%H:%M:%S.%fZ"
Run Code Online (Sandbox Code Playgroud)

期望的输出是2018-03-13 14:00:17

eag*_*gle 5

因此,我找到了一种解决方法来解决 ZULU 偏移量和纳秒,因为我不太关心纳秒。不确定是否有效

echo '{"time_field": "2018-03-13T14:00:17.1234567Z"}' | jq -r '
.time_field 
| split(".")[0] 
| strptime("%Y-%m-%dT%H:%M:%S") 
| mktime 
| strftime("%F %X")'
Run Code Online (Sandbox Code Playgroud)