タグ
🔧 テックlinuxcommand linedateISO8601
投稿日
May 17, 2019
著者
💩 うんち
--iso-8601
が使える場合
※ 基本形式と拡張形式が混ざってしまっており、タイムゾーン指定子が :
がない +0000
のような形式なで注意が必要です。スクリプトなどで使用する場合は後述するフォーマットを指定する方法をおすすめします。
$ date --iso-8601
# => 2019-05-17
$ date --iso-8601="date"
# => 2019-05-17
$ date --iso-8601="hours"
# => 2019-05-17T06+0000
$ date --iso-8601="minutes"
# => 2019-05-17T06:49+0000
$ date --iso-8601="seconds"
# => 2019-05-17T06:49:53+0000
$ date --iso-8601="ns"
# => 2019-05-17T06:49:53,363131200+0000
--iso-8601
が使えない場合
フォーマットを指定すれば可能です。スクリプトに埋め込む場合などは --iso-8601
が使える場合でも環境依存のないこちらの方法が安全です。
$ date '+%Y-%m-%d'
# => 2019-05-17
$ date '+%Y-%m-%dT%H%z'
# => 2019-05-17T06+0000
$ date '+%Y-%m-%dT%H:%M%z'
# => 2019-05-17T06:49+0000
$ date '+%Y-%m-%dT%H:%M:%S%z'
# => 2019-05-17T06:49:53+0000
$ date '+%Y-%m-%dT%H:%M:%S,%N%z'
# => 2019-05-17T06:49:53,363131200+0000
タイムゾーン指定子を +00:00
のように :
ありの形式にしたい場合は %z
ではなく %:z
をつかう必要があります。
$ date '+%Y-%m-%dT%H:%M:%S,%N%:z'
# => 2019-05-17T07:03:21,023121700+00:00