Это хорошо для меня, чтобы получить дату в моем часовом поясе и отформатировать ее так, как я хочу:

естный часовой пояс и часовой пояс по умолчанию - GMT +5, но когда я получаю дату и время по NSDate, он возвращает мне дату и время по Гринвичу.

Например код и вывод из моего кода во время тестирования на устройстве, как, [часовой пояс устройства Исламабад GMT +5]

 NSTimeZone *lo = [NSTimeZone localTimeZone];
 NSLog(@" - current  local timezone  is  %@",lo); // GMT +5

2010-12-28 20:56:11.785 Done[484:307]  - current  local timezone  is  Local Time Zone (Asia/Karachi (GMT+05:00) offset 18000)

 NSTimeZone *df = [NSTimeZone defaultTimeZone];
 NSLog(@" - current  default timezone  is  %@",df); // GMT +5

2010-12-28 20:56:11.790 Done[484:307]  - current  default timezone  is  Asia/Karachi (GMT+05:00) offset 18000

но

 NSDate *cDate = [NSDate date];
 NSLog(@"current date by NSDate %@",cDate); //but NSDate show GMT
2010-12-28 20:56:11.794 Done[484:307] current date by NSDate 2010-12-28 15:56:11 GMT


 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
 dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm";
 //// NSTimeZone *gmt = [NSTimeZone ]
 NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT+05:00"];
 [dateFormatter setTimeZone:gmt];

 NSString *timeStamp = [dateFormatter stringFromDate:[NSDate date]];
 NSLog(@" date string object  %@" ,timeStamp);   // string From Date is GMT +5
2010-12-28 20:56:11.802 Done[484:307]  date string object  2010-12-28T20:56


 NSDate *datef = [dateFormatter dateFromString:timeStamp]; 
 NSLog(@" date object %@" ,datef);  // the date form above string gives again GMT
2010-12-28 20:56:11.809 Done[484:307]  **date object 2010-12-28 15:56:00 GMT**

Почему NSDate не показывает местное текущее время? Пожалуйста помоги...

Ответы на вопрос(0)

Ваш ответ на вопрос