Представления даты

Базовая Основа позволяет Вам работать с пятью различными представлениями времени:

CFAbsoluteTime

Когда необходимо обратиться к отдельному моменту своевременно, CFAbsoluteTime полезен. Значение CFAbsoluteTime представляет время как многие секунды относительно базисной даты от 1 января 2001 0:00:00 GMT. Положительное значение представляет дату после того, как базисная дата, отрицательная величина будет представлять дату перед ним.

Абсолютное время может сбить с толку сначала, потому что абсолютная временная стоимость является буквально временным интервалом (число секунд начиная с базисной даты), но это интерпретируется как определенный момент своевременно. Например, абсолютное время-32940326 указывает обоих дата и время — 16-го декабря 1999 в 17:54:34. Абсолютная временная стоимость не может использоваться для обращения к дате или время часов независимо, она всегда включает обоих.

CFAbsoluteTime реализован как a double и может быть по сравнению с другим абсолютным временем с помощью стандарта C операторы сравнения.

CFTimeInterval

Когда необходимо измерить продолжительность, CFTimeInterval является соответствующим. В секундах CFTimeInterval представляет прошедшее время. Как с CFAbsoluteTime, CFTimeInterval реализован с помощью типа C double и таким образом, можно сравнить два значения CFTimeInterval с помощью стандарта C операторы сравнения.

CFGregorianDate

CFGregorianDate представляет время с помощью Григорианского календаря, который был во всеобщем употреблении в Европе и Западном полушарии с 1582. CFGregorianDate реализован как структура C с отдельными полями в течение многих лет, месяцев, дней, часов, минут и секунд. Можно проверить любые из полей CFGregorianDate для законности. Грегорианская дата может также быть преобразована в и с абсолютного времени.

CFGregorianUnits

CFGregorianUnits походит на CFTimeInterval, в котором он представляет продолжительность, а не отдельный момент своевременно. Как CFGregorianDate, CFGregorianUnits реализован как структура C, но типы данных полей отличаются для обеспечения больших значений. Например, CFGregorianDate никогда не будет иметь больше чем 52 недель или 24 часов, таким образом, поля структуры CFGregorianDate будут реализованы с помощью самого маленького типа данных, подходящего для его максимального значения. Поскольку CFGregorianUnits предназначается для представления произвольных временных интервалов, он реализован с целыми числами на 32 бита (за исключением секунд, который имеет тип double допускать дробные значения).

CFDate

Если необходимо поместить дату в Базовый список свойств Основы, это должно иметь тип CFDate. Объект CFDate является просто абсолютным временем, «обернутым» как Базовая Основа непрозрачный тип. Грегорианская дата должна сначала быть преобразована в абсолютное время, и затем это может стать объектом CFDate. Объект CFDate может быть по сравнению с другим CFDate использованием стандартной Базовой функции сравнения Основы. Обратите внимание на то, что CFDate может только быть создан с абсолютным временем, значения CFTimeInterval не поддерживаются. Используйте CFNumber для обертывания обычных значений с плавающей точкой как CFTimeInterval. Объекты CFDate являются неизменными.