Dun*_*n C 1 swift nsdatecomponentsformatter
我最近发现了 iOS8 的新类 NSDateComponentsFormatter,它可以让你格式化时间间隔而不是日期。凉爽的。我编写代码来执行此操作的次数超出了我的想象。所以我决定尝试在操场上使用它,但我无法让它工作。这是我的(Swift)代码:
var componentsFormatter = NSDateComponentsFormatter()
componentsFormatter.allowedUnits =
.CalendarUnitHour |
.CalendarUnitMinute |
.CalendarUnitSecond
componentsFormatter.unitsStyle = .Positional
let interval: NSTimeInterval = 345.7
let intervalstring = componentsFormatter.stringFromTimeInterval(interval)
println("Interval as String = \(intervalstring)")
Run Code Online (Sandbox Code Playgroud)
这显示
字符串形式的间隔 = nil
我尝试过各种各样的事情,但没有快乐。有人有使用这个新类的工作示例吗,或者你能发现我缺少什么吗?
(我也讲 Objective-C,所以如果你有 Objective-C 的示例代码也可以。)
斯威夫特 3.1 \xe2\x80\xa2 Xcode 8.3.2
\n\nextension Formatter {\n static let dateComponents: DateComponentsFormatter = {\n let formatter = DateComponentsFormatter()\n formatter.calendar = Calendar(identifier: .iso8601)\n formatter.unitsStyle = .full\n formatter.includesApproximationPhrase = true\n formatter.includesTimeRemainingPhrase = true\n formatter.maximumUnitCount = 2\n formatter.zeroFormattingBehavior = .default\n formatter.allowsFractionalUnits = false\n formatter.allowedUnits = [.year, .month, .weekOfMonth, .day, .hour, .minute, .second]\n return formatter\n }()\n}\nextension TimeInterval {\n var remainingTime: String {\n return Formatter.dateComponents.string(from: self) ?? ""\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\nlet interval = 60.0 * 60 * 24 * 7\n\nlet intervalstring = interval.remainingTime // "About 1 week remaining"\n
Run Code Online (Sandbox Code Playgroud)\n\n定位时间
\n\nextension Formatter {\n static let positional: DateComponentsFormatter = {\n let formatter = DateComponentsFormatter()\n formatter.unitsStyle = .positional\n formatter.zeroFormattingBehavior = .default\n formatter.allowedUnits = [.hour, .minute, .second]\n return formatter\n }()\n\n}\nextension TimeInterval {\n var hourMinuteSecond: String {\n return Formatter.positional.string(from: self) ?? ""\n }\n}\n\nlet time = 345.7\n\nlet positional = time.hourMinuteSecond // "5:45"\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
1698 次 |
最近记录: |