Для других, выполняющих ISO8601, вы можете выбрать вариант:
date +%Y%m%dT%H%M%S%z # 20140809T092143-0700
date -u +%Y%m%dT%H%M%S%z # 20140809T162143+0000
date -u +%Y%m%dT%H%M%SZ # 20140809T162143Z
Мне нравятся эти, потому что отсутствие пунктуации поддерживает универсальное использование. Обратите внимание, что заглавная буква Z является «жестко закодированной» для UTC - при использовании% Z будет указан UTC или другой названный часовой пояс. Если вы предпочитаете пунктуацию:
date +%Y-%m-%dT%H:%M:%S%z # 2014-08-09T09:21:43-0700
date +%Y-%m-%dT%H:%M:%S%:z # 2014-08-09T09:21:43-07:00 - NOT ALL SYSTEMS
date -u +%Y-%m-%dT%H:%M:%S%z # 2014-08-09T16:21:43+0000
date -u +%Y-%m-%dT%H:%M:%S%:z # 2014-08-09T16:21:43+00:00 - NOT ALL SYSTEMS
date -u +%Y-%m-%dT%H:%M:%SZ # 2014-08-09T16:21:43Z
Обратитесь к man strftime
, так как поддерживаемые форматы различаются. Например, некоторые системы поддерживают вставку двоеточий в смещение, используя%: z,% :: z или% ::: z - только две из моих пяти систем делают (Debian, Ubuntu делают, но Mac, BusyBox, QNX не делают) ,
И я часто возвращаюсь к https://en.wikipedia.org/wiki/ISO_8601 для справки.