Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: AndersKОтветов: 2

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

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

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

Тиа

iphoneobjective-cnsdate

Ответы

Ответ 1 · рейтинг 3 · Eiko

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

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

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

Ответ 2 · рейтинг 2 · Dave DeLong

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы