2010-04-09 5 views

Répondre

49

Documentation est votre ami!

NSDate* date = [NSDate dateWithTimeIntervalSince1970:123456789]; 
+13

débordement de la pile est mon ami plus rapide. – tbondwilkinson

+0

Si la date vient en millisecondes, vous devez d'abord diviser ce nombre par 1000! –

7

Puisqu'il s'agit d'un grand succès, va contribuer. Notez que la conversion en NSDate le place dans le fuseau horaire UTC. Ensuite, vous devez convertir plus à votre fuseau horaire si vous souhaitez afficher à l'utilisateur, de Convert epoch time to NSDate with good timezone with Objective c:

// Convert NSString to NSTimeInterval 
NSTimeInterval seconds = [epochTime doubleValue]; 

// (Step 1) Create NSDate object 
NSDate *epochNSDate = [[NSDate alloc] initWithTimeIntervalSince1970:seconds]; 
NSLog (@"Epoch time %@ equates to UTC %@", epochTime, epochNSDate); 

// (Step 2) Use NSDateFormatter to display epochNSDate in local time zone 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss zzz"]; 
NSLog (@"Epoch time %@ equates to %@", epochTime, [dateFormatter stringFromDate:epochNSDate]); 

// (Just for interest) Display your current time zone 
NSString *currentTimeZone = [[dateFormatter timeZone] abbreviation]; 
NSLog (@"(Your local time zone is: %@)", currentTimeZone);