2012-11-05 35 views

Trả lời

8

Sử dụng này,

NSTimeInterval timeInMiliseconds = [[NSDate date] timeIntervalSince1970]; 

Để thay đổi lại,

NSDate* date = [NSDate dateWithTimeIntervalSince1970:timeInMiliseconds]; 

Theo apple documentation,

NSTimeInterval: Được sử dụng để xác định một khoảng thời gian, chỉ trong vài giây.

typedef double NSTimeInterval;

Nó thuộc loại gấp đôi.

Để chuyển đổi một ngày để chuỗi,

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

Đồng thời kiểm tra xem bạn có cần thêm điều này không: [NSDate dateWithTimeIntervalSince1970: (ms/1000)]; – Pach

2

Swift

Câu trả lời này đã được cập nhật cho Swift 3, và do đó không còn sử dụng NSDate.

Thực hiện các bước sau để chuyển đổi số nguyên dài thành chuỗi ngày tháng.

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

Ghi chú

  • Kể từ ngày Java được lưu trữ như long số nguyên trong mili giây kể từ năm 1970 công trình này. Tuy nhiên, hãy đảm bảo giả định này là đúng trước khi chỉ chuyển đổi bất kỳ số nguyên cũ nào thành ngày sử dụng phương thức trên. Nếu bạn là converting a time interval in seconds thì không chia cho 1000, tất nhiên.
  • Có nhiều cách khác để thực hiện chuyển đổi và hiển thị chuỗi. Xem this fuller explanation.
+0

Chia cho 1000 đã làm cho tôi. Cảm ơn! – NightFury

Các vấn đề liên quan