【发布时间】:2015-04-22 10:04:03
【问题描述】:
问题
为什么string 为零?
let formatter = NSDateComponentsFormatter()
let referenceDate = NSDate(timeIntervalSinceReferenceDate: 0)
let intervalDate = NSDate(timeInterval: 3628810, sinceDate: referenceDate)
let string = formatter.stringFromDate(referenceDate, toDate: intervalDate)
我希望返回一个类似“6w 10s”的字符串。
(6 周是 3,628,800 秒。)
尝试的故障排除
为了解决问题,我尝试设置allowedUnits:
formatter.allowedUnits = .YearCalendarUnit | .MonthCalendarUnit | .WeekCalendarUnit | .DayCalendarUnit | .HourCalendarUnit | .MinuteCalendarUnit | .SecondCalendarUnit
导致此错误的原因:
"NSInvalidArgumentException", "指定带间隙的位置单位不明确,因此不受支持"
我不知道什么是“位置单位”(足球之外),我认为我没有指定任何差距。
注意事项
我不使用stringFromTimeInterval(),因为这将根据系统的当前日期返回不同的结果。 (即,2 月一个月只有 28/29 天。)我想计算时间间隔从 NSDate 参考日期。
我正在使用 Xcode 6.1.1 (6A2008a)。如果有帮助,这是 Playground 屏幕截图:
【问题讨论】:
标签: swift nsdate nsdateformatter nsdatecomponents nsdatecomponentsformatter