コマンドラインからUNIXタイムスタンプのフォーマットされた日付を取得する方法

コマンドラインからUNIXタイムスタンプのフォーマットされた日付を取得する方法

UNIXタイムスタンプがあり、dateそのタイムスタンプに対応するフォーマットされた日付を取得したい(例:の出力)。

これまでの私の試みは次のとおりです。

$ date +%s
1282367908
$ date -d 1282367908
date: invalid date `1282367908'
$ date -d +1282367908
date: invalid date `+1282367908'
$ date +%s -d +1282367908
date: invalid date `+1282367908'

次のような結果が出ることを願っています。

$ TZ=UTC somecommand 1282368345
Sat Aug 21 05:25:45 UTC 2010

答え1

Mac OS XとBSDの場合:

$ date -r 1282368345
Sat Aug 21 07:25:45 CEST 2010
$ date -r 1282368345 +%Y-%m-%d
2010-08-21

GNUコアツールの使用(これを行うには、情報ファイルを詳しく調べる必要があります):

$ date -d @1282368345
Sat Aug 21 07:25:45 CEST 2010
$ date -d @1282368345 --rfc-3339=date
2010-08-21

-u(標準)オプションを追加するか、TZ=UTC0環境変数を渡してUTC日付(TZ=UTC0 定義UTCオフセット0(オフセットなし)で呼び出されるタイムゾーンの動作はUTC指定されていません(ほとんどのシステムでは、UTCオフセット0でも呼び出されるシステム定義のタイムゾーンを参照します)。TZ=UTCUTC

答え2

インターネット検索の後、次のコマンドを使用してこれを行う方法を見つけましたdate

$ date --date "Jan 1, 1970 00:00:00 +0000 + 1282367908 seconds"
Sat Aug 21 09:18:28 MSD 2010

答え3

次の1行のPerlコードでこれを行うことができます。

$ perl -e 'print scalar localtime $ARGV[0]' 1282367908
Sat Aug 21 09:18:28 2010

答え4

OSXではUTCを使用してください。

date -r "1475737200" -u

関連情報