1


awk で、コマンド "date"
$ date +%s -d '2010-10-08 00:00を使用して、時間形式を "2010-10-08 00:00:01" から 1286467201 に変換する方法はありますか:01'
1286467201

4

1 に答える 1

0

GNU awkには、その仕事をすることができるmktime関数があります。ただし、タイムゾーンに注意することが重要です。文字列"2010-10-0800:00:01"には、特定の時刻を定義するのに十分な情報が含まれていません。UTCであると想定する場合は、次のことができます。

$ echo 2010-10-08 00:00:01 | \
  TZ=UTC gawk '{ tstr=$1" "$2; gsub(/[\-:]/, " ", tstr); print mktime(tstr); }'
1286496001

TZ変数を指定しないと、サーバーのタイムゾーンになります(とにかくUTCである必要がありますが、多くの人がサーバーで現地時間を使用しているため、安全な仮定ではありません)。

日付コマンドを少し変更することで、UTC出力を取得できます。

$ date +%s -u -d '2010-10-08 00:00:01'
于 2010-10-16T15:31:30.570 に答える