Я должен установить UIAlertNotification в 18:00 по местному времени. Время установлено в 11:00 и будет до 18:00, потому что местный часовой пояс, в котором я сейчас нахожусь, - GMT + 6: 00. Однако в разных часовых поясах все будет иначе. Я хочу, чтобы это было 6:00 вечера в любом часовом поясе. Может ли кто-нибудь любезно помочь мне? Спасибо.
NSDateComponents *comps=[[[NSDateComponents alloc]init]autorelease];
[comps setYear:[year intValue]];
[comps setMonth:[month intValue]];
[comps setDay:[day intValue]];
[comps setHour:[@"11" intValue]];//6pm
[comps setMinute:0];
[comps setMinute:0];
[comps setTimeZone:[NSTimeZone localTimeZone]];
NSCalendar *cal=[[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDate *date1=[[cal dateFromComponents:comps]retain];
// локальный код оповещения
NSInteger minutesAhead = 0;
NSTimeInterval seconds = (60 * minutesAhead) * -1;
NSDate *actualFireDate = [date1 dateByAddingTimeInterval:seconds];
NSMutableDictionary *dictC = [NSMutableDictionary dictionaryWithDictionary:userInfo];
[dictC setObject:date1 forKey:@"PCOriginalReminderDate"];
UILocalNotification *notification = [[UILocalNotification alloc] init];
notification.fireDate = actualFireDate;
notification.alertBody = message;
notification.userInfo = dictC;
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
[notification release];
Примечания:
Когда я печатаю дату, она говорит:
date = "2012-04-04 18:00:00 +0000";
Я думаю, что это означает, что 11:00 было по Гринвичу, и добавление 7 часов (с его GMT +7 - дневной свет) и делает это 18:00.