299

関連する質問は"Datetime To Unix timestamp"ですが、この質問はより一般的です。

最後の質問を解決するには、Unix タイムスタンプが必要です。私の興味は Python、Ruby、Haskell ですが、他のアプローチも大歓迎です。

Unix タイムスタンプを生成する最も簡単な方法は何ですか?

4

20 に答える 20

592

LinuxまたはMacOSでは、次のものを使用できます。

date +%s

どこ

  • +%s、1970-01-0100:00:00UTCからの秒数。(GNU Coreutils 8.24日付マニュアル)

出力例は1454000043になりました。

于 2012-09-07T06:38:38.380 に答える
111

ルビーで:

>> Time.now.to_i
=> 1248933648
于 2009-07-30T06:01:29.820 に答える
20

curl icanhazepoch.com

基本的にサービスとしての UNIX タイムスタンプ (UTaaS) です。

于 2015-05-12T02:49:39.917 に答える
19

Python では、次の行を追加してタイム スタンプを取得します。

>>> import time
>>> time.time()
1335906993.995389
>>> int(time.time())
1335906993
于 2012-05-01T21:17:02.013 に答える
12

Perlの場合:

>> time
=> 1335552733
于 2012-04-27T18:52:24.657 に答える
9

UNIX の「date」コマンドは驚くほど用途が広いです。

date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s"

-f で定義された形式になるの出力を取得しdate、それを +%s, seconds since epoch の形式で出力します (-j は日付を設定しようとしません)。

于 2010-05-04T09:54:53.140 に答える
7

まず第一に、Unix の「エポック」またはゼロタイムは 1970-01-01 00:00:00Z (ズールーまたは GMT または UTC タイムゾーンで 1970 年 1 月 1 日の午前 0 時を意味します) です。Unix タイム スタンプは、その時刻からの秒数です。うるう秒は考慮されていません。

Perl で現在時刻を生成するのはかなり簡単です。

perl -e 'print time, "\n"'

特定の日付/時刻値に対応する時刻を生成するのは、それほど簡単ではありません。論理的には、strptime()POSIX の関数を使用します。ただし、Perl POSIX::strptime モジュール (POSIX モジュールとは別のもの) には署名があります。

($sec, $min, $hour, $mday, $mon, $year, $wday, $yday) = 
                                     POSIX::strptime("string", "Format");

mktimePOSIX モジュールの関数には署名があります。

mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)

したがって、データの形式がわかっている場合は、次のバリアントを作成できます。

perl -MPOSIX -MPOSIX::strptime -e \
    'print mktime(POSIX::strptime("2009-07-30 04:30", "%Y-%m-%d %H:%M")), "\n"'
于 2009-07-30T06:13:45.570 に答える
4

完全を期すために、PHP:

php -r 'echo time();'

BASH の場合:

clitime=$(php -r 'echo time();')
echo $clitime
于 2015-07-05T16:13:40.377 に答える
2

ハスケルで...

POSIXTime 型として戻すには:

import Data.Time.Clock.POSIX
getPOSIXTime

整数として:

import Data.Time.Clock.POSIX
round `fmap` getPOSIXTime
于 2014-01-03T15:13:23.787 に答える
2
public static Int32 GetTimeStamp()
    {
        try
        {
            Int32 unixTimeStamp;
            DateTime currentTime = DateTime.Now;
            DateTime zuluTime = currentTime.ToUniversalTime();
            DateTime unixEpoch = new DateTime(1970, 1, 1);
            unixTimeStamp = (Int32)(zuluTime.Subtract(unixEpoch)).TotalSeconds;
            return unixTimeStamp;
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex);
            return 0;
        }
    }
于 2014-05-09T09:39:23.273 に答える
-1

シェル スクリプト (Bourne ファミリー: sh、ksh、bash、zsh、...) からの Unix タイムスタンプが必要な場合、他の提案 (perl、haskell、ruby、python、GNU date )、これは POSIX 標準のコマンドと機能に基づいています。

PATH=`getconf PATH` awk 'BEGIN {srand();print srand()}'
于 2014-10-01T19:53:26.927 に答える