Подтвердить что ты не робот

Имя дня из NSDate?

Я хочу показать имя дня в приложении для iPhone, и я не нашел решение. Спасибо за помощь

4b9b3361

Ответ 1

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

Вы получаете dayName в локали пользователя.

(проверьте стандарты Unicode для образцов форматов даты)

Ответ 2

Я нашел его, ответ был:

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

Спасибо

Ответ 3

Посмотрите - [Компоненты NSCalendar: fromDate:].

Дата сама по себе не имеет дня, потому что она может иметь разные дни в разных календарях (по-григориански, по-китайски и т.д.).

EDIT: на самом деле, извините. Это то, что вы сделали бы, чтобы получить день и работать с ним программно. Если вы хотите отобразить только день, посмотрите на NSDateFormatter.

Ответ 4

Категория 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 всегда будет понедельник! если вам нужно такое поведение

Ответ 5

Там много больших ресурсов для обработки даты и времени - это тот, который я узнал из более чем github.

Ответ 6

@Jilouc ответ в Swift:

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