Время NSDate или !время в нем

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

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

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

Тиа


person AndersK    schedule 01.07.2010    source источник


Ответы (2)


arrow_upward
3
arrow_downward

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

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

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

person Eiko    schedule 01.07.2010

arrow_upward
2
arrow_downward

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

person Dave DeLong    schedule 01.07.2010