Я получаю дату и время с этой пустотой:
-(void)getDay
{
NSDate *choice = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
[dateFormatter setDateFormat:@"yy"];
year = [[dateFormatter stringFromDate:choice] intValue];
[dateFormatter setDateFormat:@"MM"];
month = [[dateFormatter stringFromDate:choice] intValue];
[dateFormatter setDateFormat:@"dd"];
day = [[dateFormatter stringFromDate:choice] intValue];
[dateFormatter setDateFormat:@"HH"];
hour = [[dateFormatter stringFromDate:[NSDate date]] intValue];
// NSLog(@"hour: %d",hour);
[dateFormatter setDateFormat:@"mm"];
minute = [[dateFormatter stringFromDate:[NSDate date]] intValue];
[dateFormatter setDateFormat:@"ss"];
second = [[dateFormatter stringFromDate:[NSDate date]] intValue];
}
если я вижу час в журнале... он дает мне правильный час в моем местном времени, но когда я помещаю это значение в другой NSDate, которое мне нужно, чтобы создать изменение часа и стать временем по Гринвичу, вот код, который я использую:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm:SS"];
// NSLog(@"hour: %d",hour);
//this log still gives me the right hour
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
self.myDate = [dateFormatter dateFromString:[NSString stringWithFormat:@"%d-%d-%d %d:%d:%d",day,month,year,hour,minute,second]];
NSLog(@"my date: %@",myDate);
Этот последний журнал выглядит так:
2013-08-31 05:14:12.905 myApp[25987:904] моя дата: 2013-08-31 15:14:00 +0000
мой час должен быть 5:14, но вместо этого это 15:14, то есть время по Гринвичу... Почему это происходит и как я могу получить местное время, а не время по Гринвичу? Спасибо за любую помощь.
NSDate
в консоли всегда будет показывать GMT. Если вы установите точку останова и посмотрите на нее в своих локальных переменных, вы увидите дату в местном часовом поясе. - person memmons   schedule 31.08.2013