我可以在日期选择器中获取日期,计算剩余时间并放入标签中。这给出了几秒钟:
let timeLeft = datePicker.dateValue.timeIntervalSinceNow
countingLabel.stringValue = "seconds left: \(timeLeft)"
Run Code Online (Sandbox Code Playgroud)
如何格式化“ timeLeft”?
I tried this and it does not work:
var formatter = NSDateFormatter()
formatter.dateFormat = "EEEE, yyyy-MM-dd hh:mm:ss"
let timeLeft2 = formatter.stringFromDate(timeLeft)
Run Code Online (Sandbox Code Playgroud)
您可以使用NSDateComponentsFormatter
。从文档中:
一个
NSDateComponentsFormatter
对象需要花费大量时间,并将它们格式化为用户可读的字符串。使用日期组件格式化程序为您的应用程序界面创建字符串。
例:
let formatter = NSDateComponentsFormatter()
formatter.unitsStyle = .Full
formatter.allowedUnits = .CalendarUnitSecond | .CalendarUnitMinute | .CalendarUnitHour
let pickedDate = datePicker.dateValue
let now = NSDate()
let formattedTimeLeft = formatter.stringFromDate(now, toDate: pickedDate)!
// Example result : 1:06:50
Run Code Online (Sandbox Code Playgroud)
还有更多可用的输出格式,例如
.Abbreviated : 1h 6m 50s
.Short : 1 hr, 6 min, 50 secs
.Full : 1 hour, 6 minutes and 50 seconds
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1443 次 |
最近记录: |