相关的问题是“Datetime到Unix时间戳”,但这个问题更一般。
我需要Unix时间戳来解决最后一个问题。我的兴趣是Python、Ruby和Haskell,但也欢迎其他方法。
生成Unix时间戳最简单的方法是什么?
相关的问题是“Datetime到Unix时间戳”,但这个问题更一般。
我需要Unix时间戳来解决最后一个问题。我的兴趣是Python、Ruby和Haskell,但也欢迎其他方法。
生成Unix时间戳最简单的方法是什么?
当前回答
在Haskell
import Data.Time.Clock.POSIX
main :: IO ()
main = print . floor =<< getPOSIXTime
在去
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);
在斯威夫特
NSDate().timeIntervalSince1970 // or Date().timeIntervalSince1970
其他回答
让我们试试JavaScript:
var t = Math.floor((new Date().getTime()) / 1000);
...或者更好的静态方法:
var t = Math.floor(Date.now() / 1000);
在这两种情况下,我都用1000从秒到毫秒,我使用数学。只表示已经过的整秒(与舍入相比,舍入可能表示尚未经过的整秒)。
在Ruby中:
>> Time.now.to_i
=> 1248933648
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;
}
}
在锈:
use std::time::{SystemTime, UNIX_EPOCH};
fn main() {
let now = SystemTime::now();
println!("{}", now.duration_since(UNIX_EPOCH).unwrap().as_secs())
}
呜:
$ nawk 'BEGIN{print srand()}'
甚至可以在旧版本的Solaris和其他UNIX系统上工作,在这些系统中“date +%s””没有实现 不能在Linux和其他posix工具已经被GNU版本(nawk -> gawk等)取代的发行版上工作。 很不直观,但肯定很有趣:-)