Если ваша единственная цель - сравнить разные даты, чтобы увидеть, какая из них стоит первой, просто конвертируйте временные метки Int Unix из JSON в Date
объекты с:
let aDate = Date(timeIntervalSince1970: Double(timestamp)/1000.0)
Вы можете сравнить Date
объекты напрямую, используя >
, =
, <
и т. д., и результат будет сравнивать даты с точностью до миллисекунды.
Вы также можете напрямую сравнивать свои метки времени Unix, и результаты будут идентичны сравнению меток времени, которые вы конвертировали в Date
объекты.
Если вы хотите сравнивать объекты Date простомесяц / день / год, его сложнее.
Какао Date
ВСЕГДА представляет собой момент времени во всем мире.Внутренне он представлен в виде количества секунд с момента «даты эпохи» iOS (полночь 1 января 2001 года в UTC). Unix использует другую дату эпохи, но использует «timeIntervalSince1970», и его варианты позволяют работать с объектами Cocoa Date
.и даты эпохи Unix.
Не существует такой вещи, как дата "без компонента времени".Есть несколько способов «нормализовать» свои даты: вы можете преобразовать дату в дату строка , которая имеет только месяц / день / год;вы можете принудительно установить значения всех дат ровно в полночь их месяца / дня / года в заданном часовом поясе, или вы можете извлечь месяц / день / год DateComponents
из вашего Date
.(Поиск по "DateComponents" в справочной системе Xcode, а также поиск по "DateComponents" в справочнике по классу Calendar
, так как многие функции, позволяющие выполнять вычисления на Dates
и DateComponents
, предоставляются Calendar
класс.)
Обратите внимание, что день / месяц / год, на который попадает цифровая временная метка Unix, часто отличается в зависимости от вашего часового пояса.Прямо сейчас в 22:47 по восточному поясному времени 24 октября здесь, в пригороде округа Колумбия.Я только что вычислил метку времени Unix для текущего времени и получил 1540435644000. В Японии 1540435644000 - 25 октября.(С моей точки зрения, это уже завтра в Японии).Таким образом, 2 отметки времени Unix могут быть в тот же день / месяц / год в Японии, но в другой день / месяц / год, где я живу, или наоборот.