Как мне узнать текущий час, используя Какао? - PullRequest
3 голосов
/ 13 апреля 2009

Как мне узнать текущий час в Какао, используя Objective-C?

Ответы [ 5 ]

38 голосов
/ 13 апреля 2009

Чтобы начать, вы должны прочитать Темы программирования времени и даты для какао . Это даст вам хорошее понимание использования различных объектов даты / времени / календаря, предоставляемых в Какао, для высокоуровневого преобразования дат.

Этот фрагмент кода, однако, ответит на вашу конкретную проблему:

- (NSInteger)currentHour
{
    // In practice, these calls can be combined
    NSDate *now = [NSDate date];
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *components = [calendar components:NSHourCalendarUnit fromDate:now];

    return [components hour];
}
6 голосов
/ 13 апреля 2009

Один из способов - использовать NSCalendar и NSDateComponents

NSDate *now = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:NSHourCalendarUnit fromDate:now];
NSInteger hour = [components hour];
2 голосов
/ 07 октября 2010

Я новичок в Какао, и я очень рад, что нашел это. Я также хочу включить, что вы можете легко сделать это функцией, возвращающей текущий час, минуту и ​​секунду в одном объекте NSDateComponents. как это:

// Function Declaration (*.h file)
-(NSDateComponents *)getCurrentDateTime:(NSDate *)date;

// Implementation
-(NSDateComponents *)getCurrentDateTime:(NSDate *)date
{
    NSDate *now = [NSDate date];
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *comps = [calendar components:NSHourCalendarUnit + NSMinuteCalendarUnit + NSSecondCalendarUnit fromDate:now];
    return comps;

}

// call and usage

NSDateComponents *today = [self getCurrentDateTime:[NSDate date]];
        hour = [today hour];
        minute = [today minute];
        second = [today second];

Как вы можете видеть, параметр component в объекте NSCalendar является немного мудрым перечислением, и вы можете объединить значения перечисления, используя '+'

Просто подумал, что внесу свой вклад, поскольку смог использовать примеры для создания своих.

1 голос
/ 13 апреля 2009
[NSDate date]

Это текущее время, разберите час по мере необходимости. Вы не предоставили много подробностей о том, какой именно час вы имели в виду - например, в текущем часовом поясе? Или другой?

0 голосов
/ 21 марта 2015

Swift версия

func currentHour() -> Int {
    let now = NSDate()
    let calendar = NSCalendar.currentCalendar()
    let components = calendar.components(.Hour, fromDate: now)

    return components.hour
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...