我如何获得十分之一秒?

时间:2015-02-22 13:20:56

标签: swift xcode6 osx-yosemite

我尝试快速制作一些东西,现在我需要从系统中获得十分之一秒。我已经检查了文档,从NSCalendar开始,我只需要几纳秒。

func getTime()  {

    let dateNow = NSDate()
    let calendar = NSCalendar.currentCalendar()

    let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute | .CalendarUnitSecond | .CalendarUnitNanosecond , fromDate: dateNow)

    let x = CGFloat(components.nanosecond) * -1000000000
    println(x)

    let s = components.second
    cSeconds = s;

    let m  = components.minute     
    let h = components.hour     

     // code... 
} 

您知道如何从系统中获取此信息吗?哦!我认为如果我得到至少几毫秒就可以了,因为我觉得使用它会容易得多。 感谢。

3 个答案:

答案 0 :(得分:2)

一秒钟内有1,000,000,000纳秒,一秒钟就有1,000毫秒。因此,您可以简单地将纳秒除以1,000,000转换为毫秒,并将结果舍入为最接近的毫秒间隔。

let milliseconds = round(CGFloat(components.nanosecond) / 1000000)

答案 1 :(得分:1)

1纳秒是10 -9 秒。 将纳秒除以10 8 得到十分之一秒, 或者通过10 6 来获得毫秒。 例如:

let dateNow = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute | .CalendarUnitSecond | .CalendarUnitNanosecond , fromDate: dateNow)

let t = components.nanosecond / 100000000
let s = components.second
let m  = components.minute
let h = components.hour

println(String(format:"%02ld:%02ld:%02ld.%01ld", h, m, s, t))
// 14:27:12.3

答案 2 :(得分:0)

您可以使用NSDateFormatter获取毫秒数吗?

let dateNow = NSDate()
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy/MM/dd hh:mm:ss:SSS"
println(dateFormatter .stringFromDate(dateNow))

SSS代表毫秒。