Проблема при преобразовании nsstring в nsdate и наоборот - PullRequest
1 голос
/ 27 мая 2011

У меня возникла проблема при преобразовании даты в строку и строки в дату.

код:

NSDate *date=[NSDate date];
NSDateFormatter *formatter=[[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/YYYY"];
NSString *dateString=[formatter stringFromDate:date];

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd/MM/YYYY"];
NSDate *date2 = [dateFormat dateFromString:dateString];

при печати отображается другая дата.Пожалуйста, помогите мне

1 Ответ

1 голос
/ 27 мая 2011

NSDate всегда возвращается в GMT. Так что date2 правильно. Это в GMT. Вы можете считать это 27/05/2011 00:00:00 +0530 IST. В этом нет ничего плохого.

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd/MM/YYYY"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"IST"]];
NSLog(@"%@", [dateFormat stringFromDate:date2]);

Выполнение этого должно вернуться в IST.

Вы также можете получить date2, как это,

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSInteger flag = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *dateComponents = [gregorian components:flag fromDate:[NSDate date]];
NSDate *date2 = [gregorian dateFromComponents:dateComponents];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...