Sum*_*tel 6 iphone nsdate nscalendar nsdatecomponents ios
我有格式的数据
时间:13:52,10:30,11:48
等等
我想绕到最近的一小时.
比如13:52 - > 14:00,10:30 - > 11:00和11:48 - > 12:00.
我怎么能用NSDate做到这一点?
使用此方法
- (NSDate*) nextHourDate:(NSDate*)inDate{
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [calendar components: NSEraCalendarUnit|NSYearCalendarUnit| NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit fromDate: inDate];
[comps setHour: [comps hour]+1]; //NSDateComponents handles rolling over between days, months, years, etc
return [calendar dateFromComponents:comps];
}
Run Code Online (Sandbox Code Playgroud)
这将为您提供inDate下一小时的日期
这是一个Swift 3.0实现,使用Date扩展名获取最近的小时:
extension Date {
func nearestHour() -> Date? {
var components = NSCalendar.current.dateComponents([.minute], from: self)
let minute = components.minute ?? 0
components.minute = minute >= 30 ? 60 - minute : -minute
return Calendar.current.date(byAdding: components, to: self)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5833 次 |
| 最近记录: |