Проблема с форматом метки времени при попытке создать мой кластер K8S в AWS с помощью сценария

#timestamp #jq #yq

Вопрос:

Я пытаюсь запустить скрипт и получаю следующую ошибку

jq: ошибка (в :1): дата «2021-09-07T08:29:29Z» не соответствует формату «%Y-%m-%dT%H:%M:%S»

В моем скрипте есть эта строка, которая, я думаю, и является причиной ошибки

 yq '.metadata.creationTimestamp |= (. | strptime("%Y-%m-%dT%H:%M:%S") | strftime("%Y-%m-%dT%H:%M:%SZ"))' | 
 

Я не писал сценарий, поэтому я действительно не знаю, что именно означает эта строка. У кого-нибудь есть какие-нибудь идеи, что может быть не так? Это локальная проблема с моим форматом метки времени?

Комментарии:

1. Ваша команда показывает yg , но ошибка в чем jq ?

2. @0stone0 Существует две версии yq, одна из которых построена на jq. Очевидно, ОП использует именно его.

Ответ №1:

Как говорится в сообщении об ошибке, данная строка даты и времени не соответствует заданному формату. Это связано с тем, что у первого есть конечная буква «Z», которая не учитывается во втором.

Например, используя jq, мы видим:

 $ jq -ncM '"2021-09-07T08:29:29Z"|strptime("%Y-%m-%dT%H:%M:%SZ")'
[2021,8,7,8,29,29,2,249]
 

Таким образом, вы можете удалить «Z» в строке даты и времени (например, с помощью sub(«Z$»;»»)) или добавить его в строку формата, как показано в примере.

Комментарии:

1. круто, спасибо. Но поскольку конечный Z на самом деле исходит из часового пояса моего локального компьютера ( который является mac), мне нужно будет найти способ отредактировать формат метки времени на моем компьютере, верно?

2. Вероятно, было бы проще изменить сценарий jq, который также можно было бы сделать более терпимым (т. Е. Принимать оба формата).