2012-11-05 9 views

risposta

8

Utilizzare questo,

NSTimeInterval timeInMiliseconds = [[NSDate date] timeIntervalSince1970]; 

Per cambiare di nuovo,

NSDate* date = [NSDate dateWithTimeIntervalSince1970:timeInMiliseconds]; 

Come da apple documentation,

NSTimeInterval: usato per specificare un intervallo di tempo, espresso in secondi.

typedef double NSTimeInterval;

È di tipo doppio.

Per convertire una data a stringa,

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss zzz"]; 

//Optionally for time zone converstions 
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"..."]]; 

NSString *stringFromDate = [formatter stringFromDate:myNSDateInstance]; 

[formatter release]; 
+2

Verificate anche se è necessario aggiungere questo: [NSDate dateWithTimeIntervalSince1970: (ms/1000)]; – Pach

2

Swift

Questa risposta è stata aggiornata per Swift 3, e quindi non utilizza più NSDate.

Effettuare le seguenti operazioni per convertire un intero lungo in una stringa di data.

// convert to seconds 
let timeInMilliseconds = 1352101337001 
let timeInSeconds = Double(timeInMilliseconds)/1000 

// get the Date 
let dateTime = Date(timeIntervalSince1970: timeInSeconds) 

// display the date and time 
let formatter = DateFormatter() 
formatter.timeStyle = .medium 
formatter.dateStyle = .long 
print(formatter.string(from: dateTime)) // November 5, 2012 at 3:42:17 PM 

Note

  • Dal date Java sono memorizzati come numeri interi long in millisecondi dal 1970 funziona. Tuttavia, assicurati che questa ipotesi sia vera prima di convertire qualsiasi vecchio intero in una data usando il metodo sopra riportato. Se sei converting a time interval in seconds quindi non dividere per 1000, ovviamente.
  • Esistono altri modi per eseguire la conversione e visualizzare la stringa. Vedi this fuller explanation.
+0

Diviso per 1000 ha fatto un trucco per me. Grazie! – NightFury

Problemi correlati