web-dev-qa-db-fra.com

Nom du jour de NSDate?

Je voudrais montrer le nom du jour dans mon application iPhone et je n'ai pas trouvé la solution . Merci pour l'aide

36
Amine Arous
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEEE"];
NSString *dayName = [dateFormatter stringFromDate:yourDate];
[dateFormatter release];

Vous obtenez dayName dans les paramètres régionaux de l'utilisateur.

(vérifier normes Unicode pour des exemples de formats de date)

113
Jilouc

Je l'ai trouvé, la réponse était:

NSDate *now = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEEE"];
NSLog(@"%@",[dateFormatter stringFromDate:now]);

Merci

15
Amine Arous

Catégorie NSDate

+ (NSString *)dayNameWith0Monday:(NSInteger)index {

    static NSDateFormatter * DateFormatter = nil;
    if (DateFormatter == nil) {
        DateFormatter = [[NSDateFormatter alloc] init];
        [DateFormatter setDateFormat:@"EEEE"];
        [DateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
    }

    NSDate * day = [NSDate dateWithTimeIntervalSince1970:((4 * 24 * 60 * 60) + (24 * 60 * 60 * index))];
    return [DateFormatter stringFromDate:day];
}

0 sera toujours lundi! au cas où vous auriez besoin d'un tel comportement

3
Peter Lapisu

Regardez - [Composants NSCalendar: fromDate:].

Une date en elle-même n'a pas de jour car elle peut avoir différents jours dans différents calendriers (grégorien, chinois, etc.).

EDIT: en fait, désolé. C'est ce que vous feriez pour commencer la journée et travailler avec elle par programme. Si vous souhaitez uniquement afficher le jour, consultez NSDateFormatter. 

3
Ken

@Jilouc répond dans Swift:

let formatter = DateFormatter.init()
formatter.dateFormat = "EEEE"
let date = Date.init() //or any date
let dayName = formatter.string(from: date)
1
Hemang

Il existe de très bonnes ressources pour le traitement de la date et de l’heure - c’est celle que j’ai apprise sur github .

0
petert