Make sure in the simulator that you have set the region to Spanish/Spain (as opposed to Spain, which can be English in Spain). (The language setting is irrelevant to dates.) On the Settings/General/International screen it will show you a sample of the current Region Format; that must be in Spanish for your code to work.
To see in your app, add the following code:
NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
NSCalendar * calendar = [[NSLocale currentLocale] objectForKey:NSLocaleCalendar];
NSLog(@"LOCALE = %@/%@",language, [calendar.locale localeIdentifier ] );
The calendar Locale can be en_ES, which means English in Spain or es_ES, which means Spanish in Spain.
All of which means that your code is fine; on a real device in Spain, you'll have no problem, and to see this, you just need to set your simulator's settings like a device in Spain.