2011-12-28 3 views
-2

У меня есть дата в строке, какЯ хочу использовать строку в NSDate

NSString Date = "Dec 21 2011"; 

Я хочу, чтобы преобразовать эту строку в дату , как моя дата имеет специальный формат, чтобы я использующий так:

`NSDateFormatter *dateFormatterTest = [NSDateFormatter new]; 
[dateFormatterTest setDateFormat:@"MMM dd YYYY"]; 
fromDate = [dateFormatterTest dateFromString:Date]; 

NSLog("%@",fromDate); 

Я получаю этот журнал

2010-12-18 19:00:00 +0000 

может ли один объяснить, как я могу получить правильную дату.

+1

Пытались ли вы с [dateFormatterTest setDateFormat: @ "МММ дд гггг"]? – MartinMoizard

+1

Кажется, что в вашем коде много ошибок компиляции. Сначала сделайте это правильно. – Ilanchezhian

+0

@ Aadhira: Я просто случайно написал это. –

ответ

5

Вы должны использовать строчную yyyy в вашем формате дата:

[dateFormatterTest setDateFormat:@"MMM dd yyyy"]; 

Выход с этим новым форматом даты является следующее:

2011-12-21 00:00:00 +0000 

Помимо этого (основная проблема), необходимо исправьте следующие вещи:

  • При объявлении строки введите звездочку (*): NSString *date
  • Добавить @ в передней части строки, чтобы сделать его Obj-C строку @"Dec 21 2011"
  • Declare FromDate (вы никогда не объявлять его) - NSDate *fromDate = ...
  • Добавить @ в передней части NSLog - NSLog(@"%@",fromDate);

Ваш код должен теперь выглядеть следующим образом:

NSString *date = @"Dec 21 2011"; 
NSDateFormatter *dateFormatterTest = [NSDateFormatter new]; 
[dateFormatterTest setDateFormat:@"MMM dd yyyy"]; 
NSDate *fromDate = [dateFormatterTest dateFromString:date]; 

NSLog(@"%@",fromDate); 

Примечание Я переименованной Date является строчным, потому что обычно вы называете экземпляры таким образом, чтобы избежать путаницы с классами.

+0

из вашего ответа «Вам нужно использовать строчные буквы yyyy в вашем формате даты:« – Maulik

+0

yep есть проблема с этим? –

+0

Я пробовал свой код, он дает мне результат: «2011-12-20 18:30:00 +0000» – Maulik

2

согласно вашему последнему комментарию: вы должны установить свой часовой пояс.

Например:

NSString *date = @"Dec 21 2011"; 
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; 

NSDateFormatter *dateFormatterTest = [NSDateFormatter new]; 
[dateFormatterTest setTimeZone:gmt]; 
[dateFormatterTest setDateFormat:@"MMM dd yyyy"]; 
NSDate *fromDate = [dateFormatterTest dateFromString:date]; 

NSLog(@"%@",fromDate); 
+0

GMT работает Thanx Maulik! –

+0

Ваш приезд: D – Maulik

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