Конвертировать строку в дату в моем приложении для iPhone
Я сделал приложение календаря для iPhone, в котором у меня есть дата в строковом формате (например, "Вт, 25 мая 2010 12:53:58 +0000").
Я хочу преобразовать это в NSDate
.
что мне нужно использовать для этого?
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];