NSDate延迟date更改
这可能是一个简单的解决scheme,但有谁知道如何延迟午夜NSDate的变化? 任何见解将是非常有益的,谢谢!
编辑:我目前正在这样获取date,并显示基于当天的位置数据。 但是,非常像NSDate逻辑上应该工作,它切换到第二天午夜。 我希望date在凌晨三点改变,而不是在凌晨十二点。
NSDateFormatter *f = [[NSDateFormatter alloc] init]; [f setDateFormat:@"EEEE"]; today = [f stringFromDate:[NSDate date]];
我应该只使用时间,而不是使用NSDate? 对于iOS来说,我有点小气,所以任何见解都会有所帮助。 感谢您的回应。
我必须承认,我不明白你为什么要显示一个“错误”的星期几名称,但下面的代码应该做你想要的。 这只是实现你的任务的各种方法之一。
将date转换为“date组件”
NSCalendar *cal = [NSCalendar currentCalendar]; NSUInteger unitFlags = NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit; NSDateComponents *comp = [cal components:unitFlags fromDate:[NSDate date]];
如有必要减去一天:
if (comp.hour < 3) { comp.day -= 1; }
将调整的组件转换回date:
NSDate *adjustedDate = [cal dateFromComponents:comp];
您的原始代码,现在使用调整的date:
NSDateFormatter *f = [[NSDateFormatter alloc] init]; [f setDateFormat:@"EEEE"]; NSString *today = [f stringFromDate:adjustedDate];