関連する質問は"Datetime To Unix timestamp"ですが、この質問はより一般的です。
最後の質問を解決するには、Unix タイムスタンプが必要です。私の興味は Python、Ruby、Haskell ですが、他のアプローチも大歓迎です。
Unix タイムスタンプを生成する最も簡単な方法は何ですか?
関連する質問は"Datetime To Unix timestamp"ですが、この質問はより一般的です。
最後の質問を解決するには、Unix タイムスタンプが必要です。私の興味は Python、Ruby、Haskell ですが、他のアプローチも大歓迎です。
Unix タイムスタンプを生成する最も簡単な方法は何ですか?
LinuxまたはMacOSでは、次のものを使用できます。
date +%s
どこ
+%s
、1970-01-0100:00:00UTCからの秒数。(GNU Coreutils 8.24日付マニュアル)出力例は1454000043になりました。
ルビーで:
>> Time.now.to_i
=> 1248933648
curl icanhazepoch.com
基本的にサービスとしての UNIX タイムスタンプ (UTaaS) です。
Python では、次の行を追加してタイム スタンプを取得します。
>>> import time
>>> time.time()
1335906993.995389
>>> int(time.time())
1335906993
Perlの場合:
>> time
=> 1335552733
UNIX の「date」コマンドは驚くほど用途が広いです。
date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s"
-f で定義された形式になるの出力を取得しdate
、それを +%s, seconds since epoch の形式で出力します (-j は日付を設定しようとしません)。
まず第一に、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");
mktime
POSIX モジュールの関数には署名があります。
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"'
完全を期すために、PHP:
php -r 'echo time();'
BASH の場合:
clitime=$(php -r 'echo time();')
echo $clitime
ハスケルで...
POSIXTime 型として戻すには:
import Data.Time.Clock.POSIX
getPOSIXTime
整数として:
import Data.Time.Clock.POSIX
round `fmap` getPOSIXTime
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;
}
}
シェル スクリプト (Bourne ファミリー: sh、ksh、bash、zsh、...) からの Unix タイムスタンプが必要な場合、他の提案 (perl、haskell、ruby、python、GNU date )、これは POSIX 標準のコマンドと機能に基づいています。
PATH=`getconf PATH` awk 'BEGIN {srand();print srand()}'