я форматирование строки даты со следующим кодом:потеря 1 часа после форматирования строки даты
и это формат строка даты: 2013-10-08T20: 30: 00 + 03: 00
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4];
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormatter setDateFormat:@"EEEE"];
NSDateFormatter *formmatter = [[NSDateFormatter alloc] init];
formmatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:SSSZZZ";
NSString *dataString = [meetingData objectForKey:@"start"];
if (![dataString isKindOfClass:[NSNull class]]) {
NSMutableString *mutableDate = [dataString mutableCopy];
[mutableDate deleteCharactersInRange:NSMakeRange(mutableDate.length - 3, 1)];
NSDate *gmtDate = [formmatter dateFromString:mutableDate];
NSDateFormatter *HHMM_Fromatter = [[NSDateFormatter alloc] init];
[HHMM_Fromatter setDateFormat:@"HH:mm"];
self.meetingTime = checkTheObject([HHMM_Fromatter stringFromDate:gmtDate]);
self.meetingDay = checkTheObject([dateFormatter stringFromDate:gmtDate]);
}
выход для self.meetingTime
: 19:30 и self.meetingDay
прекрасно, почему я теряя 1 час?
но я думаю, что +03: 00 (часовой пояс) динамичен и приходит с сервера, как я могу его обработать? –
после установки как en_US найти выход так же –
@orazran Конечно, вам нужно разобрать полную строку времени, которую вы получаете с сервера, включая часовой пояс. Вы должны правильно настроить форматер для анализа части часового пояса. Получаемый «NSDate» всегда будет общим: в этом универсальном представлении точки во времени нет информации о локали. –