Как сделать так, чтобы команда date использовала тот же формат, что и rdiff-backup?

rdiff-backup Команда создает инкрементные резервные копии, создавая несколько файлов с метками даты в своих заголовках. Метки даты имеют формат, определенный в примечании W3 о дате и времени, которые по существу:

Полная дата плюс часы, минуты и секунды:

ГГГГ-ММ-ДДчч: мм: ссТЗД (например, 1997-07-16T19:20:30+01:00)

Где Т в середине - это буквальное "Т", обозначающее, что время начинается с этой точки.

Я хотел бы быть в состоянии отразить этот формат с помощью date команда. Пока что у меня есть:

date '+%FT%T%:z'

Что прекрасно работает, если я нахожусь в любом часовом поясе, кроме GMT ​​/UTC, давая вывод в ожидаемом формате.

Когда в часовом поясе GMT ​​/ UTC строка часового пояса в конце должна быть выведена как буква Z а не текущий +00:00,

Я уверен, что мог бы сделать это, получив часть часового пояса с отдельным date введите команду и измените ее, если она соответствует +00: 00, или используя какое-то расширение параметра, если я сохраню строку как переменную, или, возможно, даже используя tr, Есть ли прямой путь внутри date Опции команды, если нет, то как мне просто добиться этого?

1 ответ

Решение

Я не думаю, что дата GNU имеет какую-либо опцию для печати Z вместо часового пояса UTC. Это достаточно просто с sed:

$ date '+%FT%T%:z'       
2017-01-24T14:06:39+00:00
$ date '+%FT%T%:z' | sed 's/+00:00$/Z/'                            
2017-01-24T14:07:52Z
Другие вопросы по тегам