¿Cómo tomo una date y extracto el día en iOS? "

Tengo un service web que devuelve la date en este formatting:

2013-04-14 

¿Cómo puedo averiguar a qué día corresponde esto?

Un método alternativo para get el día de la semana puede ser:

 NSString *myDateString = @"2013-04-14"; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd"]; NSDate *date = [dateFormatter dateFromString:myDateString]; NSDateComponents *components = [[NSCalendar currentCalendar] components:NSWeekdayCalendarUnit fromDate:date]; NSInteger weekday = [components weekday]; NSString *weekdayName = [dateFormatter weekdaySymbols][weekday - 1]; NSLog(@"%@ is a %@", myDateString, weekdayName); 

Este código tomará su cadena, la convertirá a un object NSDate y extraerá tanto el número del día (14) como el nombre del día (domingo)

 NSString *myDateString = @"2013-04-14"; // Convert the string to NSDate NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; dateFormatter.dateFormat = @"yyyy-MM-dd"; NSDate *date = [dateFormatter dateFromString:myDateString]; // Extract the day number (14) NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit fromDate:date]; NSInteger day = [components day]; // Extract the day name (Sunday) dateFormatter.dateFormat = @"EEEE"; NSString *dayName = [dateFormatter stringFromDate:date]; // Print NSLog(@"Day: %d: Name: %@", day, dayName); 

Nota: este código es para ARC. Si MRC, agregue [dateFormatter release] al final.

Puedes usar este código para mí.

 NSString *dateString = @"2013-04-14"; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd"]; NSDate *dateFromString = [[NSDate alloc] init]; dateFromString = [dateFormatter dateFromString:dateString]; [dateFormatter setDateFormat:@"EEEE"]; NSLog(@"%@", [dateFormatter stringFromDate:dateFromString]); 

Si ha almacenado el 2013-04-14 en una date llamada NSString , puede hacer esto …

 NSArray *dateComponents = [date componentsSeperatedByString:@"-"]; NSString *day = [dateComponents lastObject]; 

Swift 3:


 let dateFromat = DateFormatter() datFormat.dateFormat = "EEEE" let name = datFormat.string(from: Date()) 

Bonus : si desea configurar su propia plantilla de date en lugar de utilizar la Date() anterior:

 let datFormat = DateFormatter() datFormat.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ" let thisDate = datFormat.date(from: "2016-10-13T18:00:00-0400") 

Luego, llame al 1er código después de esto.