Я создал еженедельное представление (похожее на календарь) с заголовком дня недели. Я создаю текущее время, используя приведенный ниже код:
+(NSDate *) getCurrentDate {
NSDate* datetime = [NSDate date];
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"America/Juneau"];// this is dynamic and coming from server.
[dateFormatter setTimeZone:timeZone]; // Prevent adjustment to user's local time zone.
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
NSString* dateTimeInIsoFormatForUserTimeZone = [dateFormatter stringFromDate:datetime];
return [dateFormatter dateFromString:dateTimeInIsoFormatForUserTimeZone];
}
Я использую эту дату в качестве ссылки для создания даты недели (с понедельника по воскресенье). Мой код работает нормально для всех случаев, но я терпел неудачу в часовом поясе DST.
Я видел аналогичный вопрос о переполнении стека, но они более субъективны и не могут решить мою проблему. Ответ с кодом и передовой практикой высоко ценится. Заранее спасибо!.
NSDate
не имеет часового пояса, поэтому любая информация о часовом поясе теряется при возврате даты. Использование того же средства форматирования даты для создания даты › строки › даты ничего не дает, верно? - person Droppy   schedule 18.07.2016