CCT est UTC + 6:30 et SGT est UTC + 8:00. Cependant résultat est fauxErreur de résultat de conversion du fuseau horaire
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMMM dd, yyyy h:mm"];
// The date in your source timezone (eg. EST)
NSDate* sourceDate = [NSDate date];
NSLog([formatter stringFromDate:sourceDate]);
NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"SGT"];
//NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone];
NSTimeZone* destinationTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"CCT"];
NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:sourceDate];
NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:sourceDate];
NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;
NSDate* destinationDate = [[[NSDate alloc] initWithTimeInterval:interval sinceDate:sourceDate] autorelease];
NSLog([formatter stringFromDate:destinationDate]);
Le résultat est que ressembler à
2010-10-06 14: 45: 41,143 TimeZone [4805: 207] 06 Octobre, 2010
02:45 2010-10-06 14: 45: 41,144 TimeZone [4805: 207] 06 Octobre, 2010 6:45
je change à
NSTimeZone* destinationTimeZone = [NSTimeZone timeZoneWithName:@"Asia/Rangoon"];
cela fonctionne bien. Pourquoi ne pas travailler avec timeZoneWithAbbreviation
Je change comme ça http://paste-it.net/public/dea4257/ mais reste un problème. C'est la valeur nulle de retour – saturngod
GMT + 06: 30 n'est pas non plus une abréviation valide. Vous devez utiliser les noms de fuseau horaire, ou les abréviations de [NSTimeZone abbreviationDictionary]. –