【问题标题】:How do I get a tenth part of a second?我如何获得十分之一秒?
【发布时间】:2016-07-21 03:59:05
【问题描述】:

我尝试快速制作一些东西,现在我需要从系统中获取十分之一秒的时间。我检查了文档,从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... 
} 

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

【问题讨论】:

    标签: swift xcode6 osx-yosemite


    【解决方案1】:

    一秒有 1,000,000,000 纳秒,一秒有 1,000 毫秒。因此,您只需将纳秒除以 1,000,000 即可转换为毫秒,然后将结果舍入到最接近的毫秒间隔。

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

    【讨论】:

      【解决方案2】:

      一纳秒是 10-9 秒。 只需将纳秒除以 108 即可得到十分之一秒, 或 106 以获得毫秒。 示例:

      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
      

      【讨论】:

      • pff .. 似乎我已经这样做了,但我收到了一些奇怪的数字,因为我除以 1 000 000 000 000 。我只需要很多 0 :)) 谢谢。
      • @C-Viorel:您问题中的代码实际上是 乘以 -1,000,000,000 而不是除以。
      【解决方案3】:

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

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

      SSS 表示毫秒。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-29
        • 1970-01-01
        • 2018-12-24
        • 1970-01-01
        • 1970-01-01
        • 2020-02-10
        相关资源
        最近更新 更多