Строка Objective-C (гггг-мм-дд) в NSDate - PullRequest
2 голосов
/ 24 января 2012

Мое приложение - это код JSON, который включает дату в строковом типе.(Например, «2011-10-01»).Я хотел бы знать, как я мог преобразовать это в NSDate?Он должен отображаться в другом формате времени, например «1 октября 2011 года».

ex.этот код не работает:

   NSString *date1 = @"2010-11-12";
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"yyyy-MMMM-dd"];
    NSDate *date2 = [dateFormat dateFromString:date1];
    NSString *strdate = [dateFormat stringFromDate:date2];

Ответы [ 3 ]

15 голосов
/ 24 января 2012

Как пишет Туг в своем блоге на эту тему :

Objective-C и iOS SDK предоставляют класс, помогающий форматировать дату (маршалинг и демаршалинг), этот класс NSDateFormatter .Не удивительно, что NSDateFormatter использует формат даты Unicode Patterns.

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *date = [dateFormatter dateFromString:publicationDate ];
[dateFormatter release];

, где публикацияDate в этом случае является строкой NSString.

2 голосов
/ 24 января 2012

Используйте NSDateFormatter. Подходящий метод - dateFromString:. Посмотрите документацию:)

1 голос
/ 24 января 2012

Вы можете попробовать это

NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];

[df setDateFormat:@"dd MM yyyy"];    

NSString *todayString = [df stringFromDate:[NSDate date]];

NSDate *someDate=[NSDate date];

NSString *targetDateString = [df stringFromDate:someDate];

NSLog(@"date:%@",targetDateString);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...