+ (NSDate *)zeroOfDate
{
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:NSUIntegerMax fromDate:[NSDate date]];
components.hour = 0;
components.minute = 0;
components.second = 0;
// components.nanosecond = 0 not available in iOS
NSTimeInterval ts = (double)(int)[[calendar dateFromComponents:components] timeIntervalSince1970];
NSDate * date = [NSDate dateWithTimeIntervalSince1970:ts];
NSTimeZone *zone = [NSTimeZone systemTimeZone];
NSInteger interval = [zone secondsFromGMTForDate: date];
NSDate *localeDate = [date dateByAddingTimeInterval: interval];
return localeDate;
}
{
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:NSUIntegerMax fromDate:[NSDate date]];
components.hour = 0;
components.minute = 0;
components.second = 0;
// components.nanosecond = 0 not available in iOS
NSTimeInterval ts = (double)(int)[[calendar dateFromComponents:components] timeIntervalSince1970];
NSDate * date = [NSDate dateWithTimeIntervalSince1970:ts];
NSTimeZone *zone = [NSTimeZone systemTimeZone];
NSInteger interval = [zone secondsFromGMTForDate: date];
NSDate *localeDate = [date dateByAddingTimeInterval: interval];
return localeDate;
}