Этот вопрос следует из предыдущего вопроса ...
Как создать текущую дату (или любую дату) как NSDate без часов, минут и секунд?
Я бы использовал этот код следующим образом ...
NSDate *todaysDate = [General makeAbsoluteNSDate:[NSDate date]];
Моя проблема в том, что у меня есть пользователи в разных странах, а UTC не является их часовым поясом, и дата, создаваемая этой функцией в определенное время дня, будет неправильной.
Как получить текущий часовой пояс для исправления моей функции?
Или я должен использовать другой подход?
Вот функция, которую я использовал ...
+ (NSDate *)makeAbsoluteNSDate:(NSDate*)datSource {
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:
NSGregorianCalendar];
[calendar setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
NSDateComponents *dateComponents = [calendar components:NSYearCalendarUnit |
NSMonthCalendarUnit | NSDayCalendarUnit
fromDate:datSource];
[dateComponents setHour:0];
[dateComponents setMinute:0];
[dateComponents setSecond:0];
NSDate *midnightUTC = [calendar dateFromComponents:dateComponents];
[calendar release];
return midnightUTC;
}