Je dois définir une notification UIAlert à 18h00, heure locale. L'heure est fixée à 11h00 et arrivera à 18h00 car le fuseau horaire local dans lequel je me trouve est GMT + 6h00. Cependant, il sera différent dans différents fuseaux horaires. Je veux qu'il soit 18h00 à n'importe quel fuseau horaire. Quelqu'un peut-il m'aider avec bonté? Merci.Concernant NSDateComponents TimeZone
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];
// code d'alerte locale
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];
Notes:
Lorsque j'imprime la date, il dit:
date = "2012-04-04 18:00:00 +0000";
Je pense que cela veut dire que 11 heures était GMT et en ajoutant 7 heures (depuis son GMT +7 - daylight) et le rend 18 heures.
Je pense que je fais tout correctement. J'ai ajouté le code complet. Veuillez me faire savoir où je fais l'erreur. – Ahsan
Quand vous dites "quand j'imprime la date", de quelle date parlez-vous? En outre, vous ne définissez pas la propriété 'timeZone' de la notification. – yuji