Ответ 1
Интересно, можно ли задать часовой пояс для объекта NSCalendar
, который используется для создания NSDate
из NSDateComponents
. Я не пробовал этого и не знаю, будет ли это работать, но, вероятно, стоит попробовать.
Мне нужно установить NSDate на определенную дату, время и часовой пояс для приложения iPhone.
Пример кода ниже отлично работает на iOS 4, поскольку setTimeZone был представлен с iOS 4. Как я могу легко установить NSDate в дату, время и часовой пояс без использования setTimeZone, чтобы его можно было использовать на устройствах iOS 3.0?
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:2010];
[comps setMonth:8];
[comps setDay:24];
[comps setHour:17];
[comps setMinute:5];
[comps setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"] ];
NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *referenceTime = [cal dateFromComponents:comps];
Угадайте, что это должно быть просто, но каким-то образом NSDate, компоненты и календари и я не очень хорошие друзья...
Интересно, можно ли задать часовой пояс для объекта NSCalendar
, который используется для создания NSDate
из NSDateComponents
. Я не пробовал этого и не знаю, будет ли это работать, но, вероятно, стоит попробовать.
NDates не имеют понятия часовых поясов сами по себе. В основном это секунды с определенной произвольной даты в GMT. Таким образом, вы не можете дать им часовой пояс. Если часовой пояс важен, вам нужно будет отслеживать время и часовой пояс.