NSDate время или! Время в нем - PullRequest
2 голосов
/ 01 июля 2010

Можно ли на NSDate увидеть, установлена ​​ли временная часть или нет?

Или перефразируя вопрос: возможно ли создать NSDate таким образом, чтобы, когда я смотрю на экземпляр, я мог видеть, было ли установлено время или нет?

У меня проблема с чтением иногда ДАТА , а иногда DATETIME из базы данных. В обоих случаях я создаю объект NSDate , однако я хотел бы знать, каким был исходный тип. Я знаю, что могу сделать обертку или что-то вроде NSDate , но мне просто интересно, есть ли какой-то другой более простой способ, просто взглянув на экземпляр NSDate , чтобы увидеть, было ли установлено время или не изначально?

ТИА

Ответы [ 2 ]

3 голосов
/ 01 июля 2010

I думаю вы создаете свои экземпляры NSDate таким же образом, только с часами, минутами и секундами, установленными в 0 только в случае DATE , преобразовывая это в NSTimeInterval и используя что для инициализации вашей даты?

Тогда нет никакого способа отличить настоящую дату от ложной. Вы можете проверить, используя тот же алгоритм, который вы использовали для его создания, то есть часы == 0 && minutes == 0 && секунд == 0. Но это не удастся для реального DATETIME с этими свойствами - что может или не может быть проблемой.

Насколько известно в документации, невозможно установить только дату, поэтому ваше преобразование уже приводит к потере деталей.

2 голосов
/ 01 июля 2010

NSDate представляет один момент времени.Как таковое, оно будет всегда иметь время, связанное с ним.Поэтому ваш вопрос недействителен.Если у вас есть NSDate, то у него есть компонент времени.Если вы хотите извлечь различные части даты (например, месяц, год, час, секунда и т. Д.), Вы будете использовать -[NSCalendar components:fromDate:].

...