2012-11-05 12 views

Odpowiedz

8

Użyj tego,

NSTimeInterval timeInMiliseconds = [[NSDate date] timeIntervalSince1970]; 

Aby zmienić go z powrotem,

NSDate* date = [NSDate dateWithTimeIntervalSince1970:timeInMiliseconds]; 

Zgodnie apple documentation,

NSTimeInterval: Używane określić przedział czasowy, w ciągu kilku sekund.

typedef double NSTimeInterval;

Jest typu double.

Aby przekonwertować datę na łańcuch,

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

Sprawdź również, czy potrzebujesz dodać: [NSDate dateWithTimeIntervalSince1970: (ms/1000)]; – Pach

2

Swift

Ta odpowiedź została zaktualizowana do Swift 3, a tym samym nie korzysta już NSDate.

Wykonaj następujące kroki, aby przekonwertować długą liczbę całkowitą na ciąg daty.

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

Uwagi

  • Od daty Java są przechowywane jako long liczb całkowitych w milisekundach od 1970 roku to działa. Upewnij się jednak, że to założenie jest prawdziwe przed konwersją dowolnej starej liczby całkowitej na datę przy użyciu powyższej metody. Jeśli jesteś converting a time interval in seconds, nie dziel oczywiście przez 1000.
  • Istnieją inne sposoby wykonania konwersji i wyświetlenia ciągu znaków. Zobacz this fuller explanation.
+0

Podzielone przez 1000 zrobiłem dla mnie trik. Dzięki! – NightFury

Powiązane problemy