NSDate
является абсолютным моментом времени. Если вы хотите узнать, в какой день он выпадает, вы должны учитывать свой конкретный часовой пояс. Поскольку вы получаете NSDateComponents
с NSCalendar
, вы можете использовать setTimeZone:
в календаре, чтобы получить компоненты (месяц, день, час и т. Д.) Для интересующего вас часового пояса.
Если вы имеете дело с «календарными датами» (то есть датами, которые всегда должны представлять определенный день / месяц, а не абсолютный момент времени), вы всегда можете использовать фиксированный часовой пояс (например, GMT) для представления дат. NSDateFormatter
(который вы используете для отображения дат пользователю) также имеет свойство timeZone
.