stn*_*brk 4 nsdate nscalendar ios swift
func updateTime() {
var date = NSDate()
var calendar = NSCalendar.currentCalendar()
var components = calendar.components(.CalendarUnitSecond, fromDate: date)
var hour = components.hour
var minutes = components.minute
var seconds = components.second
counterLabel.text = "\(seconds)"
var myIndicator = counterLabel.text?.toInt()
if myIndicator! % 2 == 0 {
// do this
} else {
// do that
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道如何更改此代码,以便在counterlabel.text中显示1/10或1/100或1/1000秒.只是想不出来......谢谢!
Mar*_*n R 10
有一个纳秒的日历单位:
let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.CalendarUnitNanosecond, fromDate: date)
let nanoSeconds = components.nanosecond
Run Code Online (Sandbox Code Playgroud)
Swift 3的更新
let date = Date()
let calendar = NSCalendar.current
let components = calendar.dateComponents([.nanosecond], from: date)
let nanoSeconds = components.nanosecond
Run Code Online (Sandbox Code Playgroud)
这给出了秒的小数部分,以10 -9秒为单位.对于毫秒,只需将此值除以10 6:
let milliSeconds = nanoSeconds / 1_000_000
Run Code Online (Sandbox Code Playgroud)
或者,如果您只想显示小数秒,请使用a NSDateFormatter和SSS格式.例:
let fmt = NSDateFormatter()
fmt.dateFormat = "HH:mm:ss.SSS"
counterLabel.text = fmt.stringFromDate(date)
Run Code Online (Sandbox Code Playgroud)
Swift 3的更新
let fmt = DateFormatter()
fmt.dateFormat = "HH:mm:ss.SSS"
counterLabel.text = fmt.stringFromDate(date)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3143 次 |
| 最近记录: |