NSString для NSDate для yyyy-MM-dd'T'HH: mm: ss.SSS + 05: 30 формат

Моя строка даты, которую я получаю, составляет 2014-01-08T21: 21: 22.737 + 05: 30 этого формата. Как передать его NSDate?

Я пробовал:

       NSString *currentDateString = @"2014-01-08T21:21:22.737+05:30";
       [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS+05:30"];
       NSDate *currentDate = [dateFormatter dateFromString:currentDateString];

       NSLog(@"CurrentDate:%@", currentDate);

Возвращает нуль. Любые мысли?

Ответ 1

Используйте этот код, он отлично работает, ваш dateFormatter был не прав.

NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];

NSString *currentDateString = @"2014-01-08T21:21:22.737+05:30";
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"];        
NSDate *currentDate = [dateFormatter dateFromString:currentDateString];

NSLog(@"CurrentDate:%@", currentDate);

Счастливое кодирование!!!!!!!!!!.

Ответ 2

Формат даты содержит часовой пояс как литерал: yyyy-MM-dd'T'HH:mm:ss.SSS+05:30 +05:30 это определение часового пояса. Вы должны проанализировать его с помощью Z.

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
NSString *currentDateString = @"2014-01-08T21:21:22.737+05:30";
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"];
NSDate *currentDate = [dateFormatter dateFromString:currentDateString];

NSLog(@"CurrentDate:%@", currentDate);

Ответ 3

NSString *[email protected]"2014-01-08T21:21:22.737+05:30";


NSDateFormatter *dateformat=[[NSDateFormatter alloc]init];

[dateformat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"];

NSDate *datefor=[dateformat dateFromString:p];

[dateformat setDateFormat:@"MM-dd-yyyy hh:mm a"];

NSString *dateStr=[dateformat stringFromDate:datefor];


NSDate *datetype=[dateformat dateFromString:dateStr];

Ответ 4

Я думаю, вам нужно инициализировать dateFormatter, как это показано ниже в вашем коде. Потому что, если вы не инициализируете всегда, вы получите нулевое значение: -

dateFormatter=[[NSDateFormatter alloc]init];

Ответ 5

Установите датуФормат как

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"];

И да, теперь NSLog печатает определенную дату.!!!

Наслаждайтесь кодированием