2016-06-21 1 views
0

J'essaie de résumer un temps à l'aide d'un NSDateComponents ..mais il me donne 10/05/1979 08:30:00 +0000 .... Quelle valeur fixée pour setTimeZone: à me donner les dans mon temps Heures (GMT + 2) qui devrait être 1979-05-10 10:30:00 +0000Comment définir le fuseau horaire sur NSDateComponents

NSDateComponents *comp = [[NSDateComponents alloc] init]; 
[comp setYear:1979]; 
[comp setMonth:5]; 
[comp setDay:10]; 
[comp setHour:10]; 
[comp setMinute:30]; 
[comp setTimeZone:]; 
+0

Avez-vous regardé la documentation? https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSTimeZone_Class/ –

Répondre

0

Vous pouvez utiliser +(NSTimeZone) timeZoneForSecondsFromGMT:. Pour convertir heures à quelques secondes, il faut multiplier par 3600.

Exemples:

Pour GMT + 2

[NSTimeZone timeZoneForSecondsFromGMT:3600*2] 

Pour GMT-2

[NSTimeZone timeZoneForSecondsFromGMT:-3600*2] 

Pour obtenir le fuseau horaire local pour votre appareil:

[NSTimeZone localTimeZone] 
+0

Je mets zéro pour 'timeZoneForSecondsFromGMT' pas (3600 * 2) pour obtenir l'heure correcte: 1979-05- 10 10:30:00 +0000 Pouvez-vous expliquer pourquoi? .. est-ce la bonne façon de procéder ?: 'NSTimeZone * local = [NSTimeZone timeZoneForSecondsFromGMT: 0]; NSDateComponents * comp = [[NSDateComponents alloc] init]; [comp setYear: 1979]; [comp setMonth: 5]; [comp setDay: 10]; [comp setHour: 10]; [comp setMinute: 30]; [comp setTimeZone: local]; ' –