Je voudrais obtenir un NSString à une date, avec un format de date comme ceci:NSDateFormatter: semaine de l'année et le premier jour de la semaine
MMEEEY ww
Le problème est pour le « ww », la semaine de l'année. Je dois comparer ce format avec un autre, tiré d'un backoffice. Mais le premier jour de semaine du backoffice est lundi, alors que celui d'iOS est dimanche. Donc, quand c'est dimanche, la chaîne n'est pas la même car la semaine de l'année n'est pas la même.
La question est: Comment forcer NSDateFormatter à utiliser lundi comme premier jour de la semaine?
J'ai essayé de définir la propriété de calendrier de NSDateFormatter avec un calendrier avec la propriété firstWeekday définie sur 2, mais cela ne fonctionne pas.
L'essentiel de ceci:
NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
calendar.firstWeekday = 2;
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.calendar = calendar;
Modifier: le test après la réponse de Noa
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
NSLocale * locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en"];
dateFormatter.locale = locale;
dateFormatter.dateFormat = @"MMEEEY ww";
NSDate * date = [NSDate dateWithTimeIntervalSince1970:1330251642]; // next sunday
NSLog(@"%@ -> %@", date, [dateFormatter stringFromDate:date]);
NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
calendar.firstWeekday = 2;
dateFormatter.calendar = calendar;
NSLog(@"%@ -> %@", date, [dateFormatter stringFromDate:date]);
Résultat:
2012-02-24 11:31:27.878 Test[2546:15203] 2012-02-26 10:20:42 +0000 -> 02Sun2012 09
2012-02-24 11:31:27.880 Test[2546:15203] 2012-02-26 10:20:42 +0000 -> 02Sun2012 09
Merci pour votre réponse. J'ai essayé de faire exactement la même chose mais pour moi, ça ne marche toujours pas ... Je ne comprends pas pourquoi ... Quoi qu'il en soit, nous avons décidé de ne pas utiliser le numéro de la semaine dans le format de la date. Problème étrange. – syfonseq