2012-11-05 9 views

Antwort

8

Verwendung,

NSTimeInterval timeInMiliseconds = [[NSDate date] timeIntervalSince1970]; 

es ändern zurück,

NSDate* date = [NSDate dateWithTimeIntervalSince1970:timeInMiliseconds]; 

Per apple documentation,

NSTimeInterval: verwendet, um ein Zeitintervall angeben, in Sekunden.

typedef doppelt NSTimeInterval;

Es ist vom Typ doppelt.

Um ein Datum zu bespannen,

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

Überprüfen Sie auch, wenn Sie diese hinzufügen müssen: [NSDate dateWithTimeIntervalSince1970: (ms/1000)]; – Pach

2

Swift

Diese Antwort zu konvertieren hat für Swift 3 und damit nicht mehr verwendet NSDate aktualisiert.

Führen Sie die folgenden Schritte aus, um eine lange ganze Zahl in eine Datumszeichenfolge zu konvertieren.

// 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 

Hinweise

  • Da Java Daten als long ganzen Zahlen in Millisekunden gespeichert sind seit 1970 das funktioniert. Stellen Sie jedoch sicher, dass diese Annahme erfüllt ist, bevor Sie nur eine alte ganze Zahl mit der obigen Methode in ein Datum konvertieren. Wenn Sie converting a time interval in seconds sind, dann teilen Sie nicht durch 1000 natürlich.
  • Es gibt andere Möglichkeiten, die Konvertierung durchzuführen und die Zeichenfolge anzuzeigen. Siehe this fuller explanation.
+0

Geteilt um 1000 tat Trick für mich. Vielen Dank! – NightFury