121

日時文字列の形式は、06/12/2012 07:21:22 です。UNIX タイムスタンプまたはエポックに変換するにはどうすればよいですか?

4

6 に答える 6

114

あなたが探しているのはdate --date='06/12/2012 07:21:22' +"%s". --date%sフォーマット文字列の両方が GNU 拡張であるため、これは GNU coreutils を使用していることを前提としていることを覚えておいてください。POSIX ではど​​ちらも指定されていないため、POSIX 準拠のシステムであっても、このような変換を行う移植可能な方法はありません。

の他のバージョンについては、適切なマニュアル ページを参照してくださいdate

注: bash--date-dオプションは、日付が US または ISO8601 形式、つまりmm/dd/yyyyoryyyy-mm-ddであると想定します。英国、EU、またはその他の形式ではありません。

于 2012-06-12T05:29:26.067 に答える
63

Linux の場合、次のコマンドを実行します。

date -d '06/12/2012 07:21:22' +"%s"

macOS の場合、次のコマンドを実行します。

date -j -u -f "%a %b %d %T %Z %Y" "Tue Sep 28 19:35:15 EDT 2010" "+%s"
于 2015-01-16T06:32:13.570 に答える
3
get_curr_date () {
    # get unix time
    DATE=$(date +%s)
    echo "DATE_CURR : "$DATE
}

conv_utime_hread () {
    # convert unix time to human readable format
    DATE_HREAD=$(date -d @$DATE +%Y%m%d_%H%M%S)
    echo "DATE_HREAD          : "$DATE_HREAD
}
于 2015-11-25T13:45:40.193 に答える