Convertendo uma string para um NSDate

Como é possível converter uma string em um NSDate no iOS?

     NSString *dateStr = @"20100223"; // Convert string to date object NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"yyyyMMdd"]; NSDate *date = [dateFormat dateFromString:dateStr]; // Convert date object to desired output format [dateFormat setDateFormat:@"EEEE MMMM d, YYYY"]; dateStr = [dateFormat stringFromDate:date]; [dateFormat release]; 

    Espero que isso ajude você.

    Você vai querer dar uma olhada no NSDateFormatter . Determine o formato da string de data e use dateFromString: para converter a string em um object NSDate.

     NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"dd/MM/YYYY"]; NSDate *date = [dateFormat dateFromString:dateStr]; list = [self getYear:date]; - (NSMutableArray *)getYear:(NSDate*)date { NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:date]; int year = [components year]; int month = [components month]; int day = [components day]; NSLog(@"%d",year); NSMutableDictionary *dateDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:[NSString stringWithFormat:@"%d", day], @"day", [NSString stringWithFormat:@"%d", month], @"month", [NSString stringWithFormat:@"%d", year], @"year", nil]; return dateDict; } 

    Uma abordagem simples, mesmo se você tiver sqlite DB:

     // NSTimeInterval is basically typedef of double so you can receive it as double also. NSTimeInterval *current = [[NSDate date] timeIntervalSince1970]; [DB addToDB:current]; //retrieve the date from DB NSDate *retrievedDateItem = [[NSDate alloc] initWithTimeIntervalSince1970:[getDBValueAsDouble]]; //convert it from double (NSTimeInterval) to NSDate // Set the style [dateFormatter setDateStyle:NSDateFormatterMediumStyle]; [dateFormatter setTimeStyle:NSDateFormatterMediumStyle]; // Converted to string NSString *convertedDate = [dateFormatter stringFromDate:retrievedDateItem]; 

    A saída para este exemplo:

    03 de agosto de 2015, 12:27:50 PM

     +(NSDate*)str2date:(NSString*)dateStr{ if ([dateStr isKindOfClass:[NSDate class]]) { return (NSDate*)dateStr; } NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"yyyy-MM-dd"]; NSDate *date = [dateFormat dateFromString:dateStr]; return date; } 

    Minha versão de trabalho no Swift

     func dateFor(timeStamp: String) -> NSDate { let formater = NSDateFormatter() formater.dateFormat = "HH:mm:ss:SSS - MMM dd, yyyy" return formater.dateFromString(timeStamp)! } func timeStampFor(date: NSDate) -> String { let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "HH:mm:ss:SSS - MMM dd, yyyy" return dateFormatter.stringFromDate(date) }