2011-12-28 4 views
0

Я настраиваю свой UILocalNotification, чтобы использовать часовой пояс по умолчанию, то есть тот, который находится в настройках iPhone, то есть время, которое появляется на часах iPhone, однако оно продолжает использовать зеленое время. Есть идеи?UILocalNotification не использует правильный часовой пояс

// Этот метод вызывается каждый раз, когда пользователь меняет дату события:

- (void)rescheduleNotification { 
    [[UIApplication sharedApplication] cancelAllLocalNotifications]; 

    //create new one using interval 
    UILocalNotification *localNotification = [[UILocalNotification alloc]init]; 

    localNotification.timeZone = [NSTimeZone defaultTimeZone]; 
    localNotification.fireDate = [self.currentSetting.lessonStartDate dateWithOffsetMinutes:[self.currentSetting.lessonRemindMinutes intValue]]; 

    NSLog(@"locationNotificated scheduled for %@", localNotification.fireDate); 

    localNotification.repeatInterval = NSWeekCalendarUnit; 
    localNotification.alertAction = nil; 
    localNotification.alertBody = @"due to begin shortly"; 
    localNotification.hasAction = YES; 
    localNotification.soundName = UILocalNotificationDefaultSoundName; 


    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; 

    [localNotification release]; 

} 

ответ

1

Все NSDate объекты, когда они будут использовать Printen GMT.

Так вы заявляете NSLog и всегда будете показывать что-то с часовым поясом +0000.

Пример:

если вы установите дату 15:00 и ваш часовой пояс +0500 тогда, когда вы печатаете дату он будет говорить: 10:00, так как смещение +0500

+0

Нет, но он всегда печатает неподходящее время независимо от +0000 – TheLearner

+0

Да, это правильно, поскольку он рассчитал время со смещением. – rckoenes

0

[NSTimeZone defaultTimeZone] не часовой пояс установлен в телефоне предпочтения, для этого Вы должны использовать

localNotification.timeZone = [NSTimeZone systemTimeZone]; 
Смежные вопросы