Tôi đang sử dụng NSDateFormatter để đặt ngày trong ứng dụng iPhone của tôi và ngày tháng hiển thị chính xác. Tuy nhiên, tôi đang tìm tất cả các ngôn ngữ (ứng dụng của tôi hỗ trợ tối đa 12 ngôn ngữ khác nhau) đang gắn bó với định dạng ngày tôi chỉ định thông qua setDateFormat. Lý tưởng nhất, tôi muốn định dạng ngày xuất hiện dưới dạng tự nhiên cho cài đặt vùng cho người dùng, thay vì theo định dạng của tôi (hoạt động tốt cho tiếng Anh nhưng có thể không tự nhiên đối với các ngôn ngữ khác).Làm thế nào để hiển thị ngày địa phương cụ thể của NSDateFormatter?
Tiếp theo là mã của tôi:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateStyle:NSDateFormatterMediumStyle]; [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; [dateFormatter setDateFormat:@"MMMM dd, yyyy kk:mm:ss"]; self.creationDate.text = [dateFormatter stringFromDate:creationTimeStamp];
Giải pháp này tốt hơn sử dụng API -localizedStringFromDate vì chuỗi được trả về bởi -localizedStringFromDate sẽ chống lại hệ số múi giờ và đôi khi đối với một số vùng ngày/giờ sẽ không liên quan. Để loại bỏ thành phần múi giờ, chúng ta cần phải làm điều này bổ sung: [dateFormatter setTimeZone: [NSTimeZone timeZoneForSecondsFromGMT: 0]]; –