Конвертировать строку в дату в моем приложении для iPhone


Я сделал приложение календаря для iPhone, в котором у меня есть дата в строковом формате (например, "Вт, 25 мая 2010 12:53:58 +0000").

Я хочу преобразовать это в NSDate.

что мне нужно использовать для этого?

4 54

4 ответа:

посмотри ссылка на класс для NSDateFormatter. Вы используете его так:

NSString *dateStr = @"Tue, 25 May 2010 12:53:58 +0000";

// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"EE, d LLLL yyyy HH:mm:ss Z"];
NSDate *date = [dateFormat dateFromString:dateStr]; 
[dateFormat release];

для получения дополнительной информации о том, как настроить этот NSDateFormatter, попробуйте данное справочное руководство.

EDIT:

просто чтобы вы знали, это будет разбирать полное название месяца. Если вы хотите три буквы названия месяца, используйте LLL вместо LLLL.

-(NSString *)dateToFormatedDate:(NSString *)dateStr {
    NSString *finalDate = @"2014-10-15";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd"];
    NSDate *date = [dateFormatter dateFromString:dateStr];
    [dateFormatter setDateFormat:@"EE, d MMM, YYYY"];
    return [dateFormatter stringFromDate:date];
}

Если вы храните даты в одном из стилей iOS, гораздо проще и менее подвержены ошибкам использовать этот метод:

// Define a date formatter for storage, full style for more flexibility
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterFullStyle];
[dateFormatter setTimeStyle:NSDateFormatterFullStyle];

// Use today as an example
NSDate *today = [NSDate date];
// Format to a string using predefined styles
NSString *dateString = [dateFormatter stringFromDate:today];
// Format back to a date using the same styles
NSDate *todayFromString = [dateFormatter dateFromString:dateString];
NSString *dateString=@"2017-05-25";

NSDateFormatter *dateFormatter=[NSDateFormatter alloc]init];

[dateFormatter setDateFormatter:@"MM-dd-yyyy"];

NSDate *date =[[NSDate alloc]init];

date=[datFormatter dateFromString:dateString];