Описание тега fence
Для извлечения части до Т
, с POSIX оболочек:
время=2017-03-08T19:41:26Z
utc_date=${время%Т*} # как уже сказал
Или закрепление совместимые или не-POSIX оболочек:
выражение "$время" : '\(.*\)Т'
Теперь, обратите внимание, что 2017-03-08T19:41:26Z
является Зулу времени (другое название для ЕТК), однозначную спецификацию точный момент времени.
На тот момент эта дата была 2017-03-08 в Лондоне, но 2017-03-09 (ранним утром) в Бангкоке.
Если вы хотели знать местные даты (в отличие от мирового даты) за это время спецификация, то есть на Бангкок пользователя, чтобы получить 2017-03-09 и лондонский пользователя, чтобы получить 2017-03-08, есть несколько вариантов.
С GNU дата
:
время=2017-03-08T19:41:26Z
дата -д "$время" +%Ф
(просто как GNU дата признает, что формат Зулу из коробки)
То же самое с ksh93
:
функции printf '%(%Ф)\Т N' "$время"
С ЗШ
встроенные модули:
zmodload ЗШ/датавремя
ТЗ=функцию strftime -РС UTC0 unix_time %г-%м-%ц%ц $время &&
функцию strftime %г-%м-%д $unix_time
(вы можете заменить %г-%м-%д
с %Ф
О систем, как GNU, где функцию strftime()
/strptime()
поддерживают его).
Похожие с busybox и дата
:
unix_time=$(дата -у-Д %Г-%м-%ц%ц -д "$время" +%з)
дата -д "@$unix_time" +%г-%м-%д