He hecho una aplicación de calendario para el iPhone en la que tengo una fecha en formato de cadena (por ejemplo, “Tue, 25 de mayo de 2010 12:53:58 +0000”).
Quiero convertir esto a un NSDate
.
¿Qué necesito usar para hacer eso?
Eche un vistazo a la referencia de clase para NSDateFormatter . Lo usas así:
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];
Para obtener más información sobre cómo personalizar ese NSDateFormatter, pruebe esta guía de referencia .
EDITAR:
Para que lo sepas, esto analizará el nombre del mes completo. Si desea tres nombres de mes, use LLL
lugar de 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]; }
Si está almacenando fechas en uno de los estilos de iOS, es mucho más fácil y menos propenso a errores usar este método:
// 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];