【发布时间】:2016-10-04 16:42:03
【问题描述】:
是否可以更改 NSDate 对象以使结果等于NSCalendar.startOfDayForDate(date:)?该方法仅适用于 iOS 8 及更高版本,但我正在寻找适用于 iOS 7 的方法。
我看过两种方法:
-
NSCalendar.dateFromComponents(comps:)如下所述:NSDate beginning of day and end of day。例如,像这样:class func startOfDay(date: NSDate, calendar: NSCalendar) -> NSDate { if #available(iOS 8, *) { return calendar.startOfDayForDate(date) } else { let dateComponents = calendar.components([.Year, .Month, .Day], fromDate: date) return calendar.dateFromComponents(dateComponents)! } } -
NSDateFormatter.dateFromString(string:)通过stringFromDate(date:),即将NSDate对象转换为不带时间的字符串,然后再转换回NSDate对象。
这两种方法的问题是它们返回一个可选的 NSDate。我不愿意隐含地解开它,我宁愿避免更改调用这些方法的方法的返回类型。
【问题讨论】:
标签: swift ios7 nsdate nscalendar nsdatecomponents