2010-04-09 16 views

Respuesta

49

Documentation es su amigo!

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

desbordamiento de pila es mi amigo más rápido. – tbondwilkinson

+0

¡Si la fecha viene en milisegundos, primero debe dividir ese número por 1000! –

7

Dado que este es un gran éxito, vamos a contribuir. Tenga en cuenta que solo al convertir a NSDate lo colocará en la zona horaria UTC. Entonces usted tiene que convertir a su zona horaria, si desea mostrar al usuario, desde 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); 
Cuestiones relacionadas