2015-06-24 3 views
1

Я использую NSDateFormatter, чтобы преобразовать NSString в NSDate.NSDateFormatter неверное преобразование даты

Для например, если мой NSString значение июня 24,2015 Затем он становится конвертированы в 2015-06-23 18:30:00 +0000, что неправильно.

Это должно быть «24» вместо «23».

Я использую ниже код для преобразования.

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"MMM dd,yyyy"]; 
NSLog(@"%@",[formatter dateFromString:strDate]); 

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

Благодаря

ответ

3

это может помочь вам. Добавьте следующий код.

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
formatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0]; 
+0

Abhishek это работает. Спасибо :) –

+0

Добро пожаловать, брат. :) – Abhishek

1

Добавить линия NSTimeZone:

NSString *dateString = @"Jun 24,2015"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"MMM dd,yyyy "]; 
dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0]; 
NSLog(@"%@",[dateFormatter dateFromString:dateString]); 
+0

Я использую этот формат только i.e @ "Jun 24,2015" –

+0

Нет разницы между кодом, который я использую, и вы предложили. –

+0

см. Мой обновленный ответ его отличная работа @ArvinderSingh –

3

Ваш NSDateFormatter принимает значение как локальный Дата формиат (IST, GMT +5: 30), а затем преобразовать его в GMT. Он принимает ваше значение в 00:00, 24 июня 2015 года и преобразовать его в соответствии с GMT 18:30 23 июня 2015 означает, 5 часов и 30 минут до фактического времени так просто добавить

[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]; 

и он будет работа хорошо.

Смежные вопросы