Objectif C - Comment puis-je obtenir le jour de la semaine de NSDate?
J'ai besoin d'être en mesure d'obtenir le jour de la semaine à partir de nsdate, j'ai le code suivant et il retourne toujours 1. J'ai essayé de changer le mois, j'ai tout essayé, de 1 à 12 mais le résultat le jour de la semaine est toujours 1.
NSDate *date2 = [[NSDate alloc] initWithString:[NSString stringWithFormat:@"%d-%d-%d", 2010, 6, 1]];
unsigned units2 = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit;
NSCalendar *calendar2 = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components2 = [calendar2 components:units2 fromDate:date2];
int startWeekDay = [components2 weekday];
[date2 release];
[calendar2 release];
source d'informationauteur aryaxt | 2010-08-19
Vous devez vous connecter pour publier un commentaire.
Edition pour Mac:
Le format de la chaîne doit être —AAAA-MM-JJ HH:MM:SS ±HHMM selon les docs, tous les champs obligatoires
Vieille réponse (pour iPhone et testé sur simulateur):
Il n'existe pas (public)
-initWithString:
méthode dansNSDate
et ce que vous obtenez est retourné pas ce que vous attendez.Utiliser correctement configuré, vous devez indiquer le format d'entrée)
NSDateFormatter
et-dateFromString:
.La création d'un
NSDateFormatter
qui contient uniquement le jour de la semaine à faire ce que vous voulez.Si vous avez besoin d'internationalisation, la
NSDateFormatter
peut être envoyé à la locale, qui va donner la bonne traduction.La date formateurs sont contrôlés par cette norme: Unicode Formats De Date
J'ai résolu le problème, Le problème est que le format de mon chaîne de date était erronée:
et depuis je n'ai pas de soins de la fois où j'ai aléatoirement passer un moment à la fin de la chaîne
Je suis en utilisant Xcode 6.4
Il existe de nombreuses façons pour l'installation d'un NSDate. Je n'irai pas plus qu'ici. Vous l'avez fait d'une façon, à l'aide d'une chaîne de caractères (Une méthode que j'ai éviter parce qu'elle est très vulnérable à l'erreur), et je suis d'une autre façon. Quelle que soit, d'accéder à vos composants de la semaine ou setDay méthodes.
de cette façon, vous pouvez obtenir ou définir l'un de ces composants comme ceci:
et, bien sûr,
NSDate *date = [calendar dateFromComponents:components];
seulement après que vous avez changé les composants.J'ai ajouté dans le supplément local et d'autres composants pour la mise en contexte dans le cas où vous souhaitez définir ceux qui sont trop.
C'est du code libre, ne pas le frapper.
Tous ceux qui viennent ici à la recherche d'une plus récente Swift 4 solution:
let inputString = "2018-04-16T15:47:39.000Z"
let result = inputString.getDayOfWeek()
résultat =
Monday
Plus upvoting réponse rapide 3.