Swift中漂亮的日期间隔。 NSCalendar组件

时间:2014-11-20 14:16:00

标签: ios swift nscalendar

我正在尝试打印一个更漂亮的timeIntervalSinceDate版本,例如'10天,6小时......'。但是我没能让NSCalendar组件正常工作。

我在调用中遇到“额外参数'toDate'错误,其中包含以下内容:

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "EE, dd MMM y hh:mm a zzz"

var dateString = "Wed, 08 Jun 2011 11:58 pm EDT"

var date: NSDate = dateFormatter.dateFromString(dateString)!

var now = NSDate()

let calendar: NSCalendar = NSCalendar()

let components = calendar.components(unitFlags: .CalendarUnitDay,
                                      fromDate: date,
                                        toDate: now,
                                       options: 0)

components.day

'toDate'功能已记录在案,所以我不确定为什么会收到错误?

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:4)

有两个错误:

  • 方法中的第一个参数没有外部参数名称, 所以你不能指定unitFlags:
  • 对于“无选项”,请指定NSCalendarOptions(0)或仅nil

合:

let components = calendar.components(.CalendarUnitDay,
       fromDate: date, toDate: now, options: nil)

Swift 2更新: NS_OPTIONS现已导入为符合要求 到OptionSetType,并且“无选项”可以指定为空集:

let components = calendar.components(.Day,
    fromDate: date, toDate: now, options: [])