NSCalendar Datewith components, указывающий неправильную дату

#objective-c #cocoa-touch #ios4 #nscalendar

#objective-c #cocoa-touch #ios4 #nscalendar

Вопрос:

Я должен разработать дату с DateComponents:

 int year;
int month;
int day;
int hour;
int minute;
int second;
NSCalendar *calendar;
NSDate *actualDate;
NSDate *itemDate;
NSDateComponents *dateComps;
NSDateFormatter *dateFormatter;
UILocalNotification *sveglia;

actualDate = [NSDate date];
calendar = [[NSCalendar currentCalendar] copy];
dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[calendar timeZone]];
[dateFormatter setDateFormat:@"yyyy"];
year = [[dateFormatter stringFromDate:actualDate] intValue];
[dateFormatter setDateFormat:@"MM"];
month = [[dateFormatter stringFromDate:actualDate] intValue];
[dateFormatter setDateFormat:@"dd"];
day = [[dateFormatter stringFromDate:actualDate] intValue];
[dateFormatter setDateFormat:@"HH"];
hour = [[dateFormatter stringFromDate:actualDate] intValue];
[dateFormatter setDateFormat:@"mm"];
minute = [[dateFormatter stringFromDate:actualDate] intValue];
[dateFormatter setDateFormat:@"ss"];
second = [[dateFormatter stringFromDate:actualDate] intValue];
dateComps = [[NSDateComponents alloc] init];
[dateComps setTimeZone:[calendar timeZone]];
[dateComps setDay:day];
[dateComps setMonth:month];
[dateComps setYear:year];
[dateComps setHour:hour];
[dateComps setMinute:minute];
// Obtaining date from components.
itemDate = [calendar dateFromComponents:dateComps];
NSLog(@"ItemDate: %@", itemDate);
  

в календаре указан правильный часовой пояс, все компоненты даты соответствуют требованиям. Что ж,
что бы я ни делал, объект itemDate имеет часовой пояс по Гринвичу ( 0000). Как мне исправить эту проблему?

Ответ №1:

Решена… Проблема не существовала с момента, когда дата была правильной, описание NSDate всегда выдает выходные данные по времени GMT. Чтобы увидеть правильный формат, вы должны использовать descriptionWithLocale, проверьте документацию для этого.

Источник

Комментарии:

1. Не забудьте отметить свой вопрос как ответ, если вы его решили!

2. Я бы хотел, но не могу до завтра 🙂