NSDate *date = [NSDate dateWithTimeIntervalSince1970:timestamp];
NSDateFormatter *_dateFormatter = [[NSDateFormatter alloc] init];
[_dateFormatter setTimeZone:[NSTimeZone defaultTimeZone]];
[_dateFormatter setDateFormat:@"dd-MM-yy HH:mm"];
NSString *dateString = [_dateFormatter stringFromDate:date];
NSLog(@"Date: %@ formatted: %@", date, dateString);
[_dateFormatter release];
Cung cấp cho tôi sai ngày định dạng:NSDateFormatter với múi giờ mặc định cho ngày khác với phương pháp mô tả NSDate
ngày: 2013/01/31 18:00:00 +0000 định dạng: 31-01-13 19:00 (từ dấu thời gian: 1359655200.000000)
Công cụ chuyển đổi trực tuyến: http://www.onlineconversion.com/unix_time.htm cho biết ngày đầu tiên là chính xác: 2013-01-31 18:00:00 +0000.
Tại sao NSDateFormatter tạo ngày khác mà NSLog? Không nên [NSDate description]
sử dụng defaultTimeZone khi in sang bảng điều khiển? Tôi gặp lỗi tương tự với [_dateFormatter setTimeZone:[NSTimeZone localTimeZone]]
; và [_dateFormatter setTimeZone:[NSTimeZone systemTimeZone]]
;
[_dateFormatter setTimeZone: [NSTimeZone timeZoneWithAbbreviation: @ "UTC"]]; giải quyết nó. – Lukasz
Chỉ FTI, nói chung là tốt hơn để sử dụng 'timeZoneWithName:' thay vì 'timeZoneWithAbbreviation:'. Đối với UTC nó không quan trọng, nhưng trong hầu hết trường hợp, tên là sự lựa chọn tốt hơn. –
Lý do tại sao một số chữ viết tắt giống nhau, chẳng hạn như EST ở Úc và Hoa Kỳ. – migs647