如何通过基金会迅速获得当前的日期和时间

时间:2015-09-16 20:33:47

标签: swift

我试图做相当于NSDate()但没有导入Foundation。

Darwin模块是否有办法做到这一点?

我正在看这个答案,但没有骰子 How can I get a precise time, for example in milliseconds in Objective-C?

1 个答案:

答案 0 :(得分:3)

我不确定这是否是你要找的,而是BSD库 功能

let t = time(nil)

给出自Unix纪元以来的秒数作为整数,因此这几乎与

相同
let t = NSDate().timeIntervalSince1970

仅后者将时间作为Double返回更高的时间 精确。如果您需要更高的精度,那么您可以使用 gettimeofday()

var tv = timeval()
gettimeofday(&tv, nil)
let t = Double(tv.tv_sec) + Double(tv.tv_usec) / Double(USEC_PER_SEC)

如果您正在寻找根据当地时区细分为年,月,日,小时等的时间,请使用

var t = time(nil)
var tmValue = tm()
localtime_r(&t, &tmValue)
let year = tmValue.tm_year + 1900
let month = tmValue.tm_mon + 1
let day = tmValue.tm_mday
let hour = tmValue.tm_hour
// ...

tmValuestruct tm,字段在中描述 https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/localtime.3.html