Как я могу генерировать метки времени Unix? - PullRequest
201 голосов
/ 30 июля 2009

Смежный вопрос "Отметка времени Datetime To Unix" , но этот вопрос носит более общий характер.

Мне нужны временные метки Unix для решения моего последнего вопроса. Мои интересы - Python, Ruby и Haskell, но приветствуются и другие подходы.

Какой самый простой способ генерировать метки времени Unix?

Ответы [ 17 ]

2 голосов
/ 19 мая 2017

in Haskell

import Data.Time.Clock.POSIX

main :: IO ()
main = print . floor =<< getPOSIXTime

in Go

import "time"
t := time.Unix()

in C

time(); // in time.h POSIX

// for Windows time.h
#define UNIXTIME(result)   time_t localtime; time(&localtime); struct tm* utctime = gmtime(&localtime); result = mktime(utctime);

in Swift

NSDate().timeIntervalSince1970 // or Date().timeIntervalSince1970
2 голосов
/ 09 мая 2014
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;
        }
    }
2 голосов
/ 03 января 2014

В Хаскеле ...

Чтобы вернуть его как POSIXTime, наберите:

import Data.Time.Clock.POSIX
getPOSIXTime

как целое число:

import Data.Time.Clock.POSIX
round `fmap` getPOSIXTime
0 голосов
/ 12 января 2018

В NodeJS просто откройте терминал и введите:
node -e "console.log(new Date().getTime())" или node -e "console.log(Date.now())"

0 голосов
/ 17 марта 2019

В Bash 5 есть новая переменная:

echo $EPOCHSECONDS

Или, если вы хотите более высокую точность (в микросекундах):

echo $EPOCHREALTIME
0 голосов
/ 14 июня 2019

Если я хочу напечатать utc date time с помощью команды date, мне нужно использовать аргумент -u с командой date.

Пример

date -u

выход

Fri Jun 14 09:00:42 UTC 2019
0 голосов
/ 01 октября 2014

Если вам нужна метка времени Unix из сценария оболочки (семейство Bourne: sh, ksh, bash, zsh, ...), это должно работать на любой машине Unix в отличие от других предложений (perl, haskell, ruby, python , GNU date), он основан на стандартной команде и функции POSIX.

PATH=`getconf PATH` awk 'BEGIN {srand();print srand()}'
...