Trên máy của tôi (cài đặt khu vực Hoa Kỳ), định dạng ngày "ngắn" mặc định được đặt thành "1/5/13" (tháng/ngày/năm).Vấn đề NSDateFormatter liên quan đến số tuần
Trong Tùy chọn hệ thống, tôi đã nối thêm số đó vào một tuần, "1/5/13 1".
Vấn đề của tôi là mã này, nơi tôi cố gắng để chuyển đổi một chuỗi đến một ngày:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
NSDate *date = [dateFormatter dateFromString:@"1/5/13 1"];
NSLog(@"Date: %@", date);
Trên máy tính của tôi, bản in này:
Date: 2000-01-01 05:00:00 +0000
Đó là , mà không phải là thậm chí gần với .
Điều gì gây ra sự cố này?
tại sao lật để thêm số này? sử dụng nsdateformatter để lấy nó. btw: bạn nên sử dụng '-dateFromString:'. Tôi nghĩ, bạn nên tham khảo tài liệu. http://developer.apple.com/library/ios/documentation/cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html – vikingosegundo
@vikingosegundo Tôi đã thay đổi mã để sử dụng 'dateFromString:', kết quả là như nhau.Điểm không phải là tôi đang thêm số tuần này :) Điểm là người dùng ** của tôi ** đã thêm số tuần này trong Tùy chọn hệ thống của họ và ứng dụng của tôi không biến nó thành ngày chính xác. –
Tôi đã làm điều tương tự trong tùy chọn hệ thống, rồi thiết lập trình định dạng ngày kiểu ngắn, sau đó chạy 'NSString * dateString = [formatatter stringFromDate: [NDate date]]; NSDate * parsedDate = [formatter dateFromSTring: dateString]; 'và thấy cùng một vấn đề. 'dateString' được định dạng theo sở thích của tôi, nhưng trình định dạng sẽ không phân tích cú pháp chính xác chuỗi đó! Tôi đã thử các thay đổi khác đối với phong cách cũng như các kiểu khác và 'CFDateFormatter', với cùng một kết quả! Có lẽ đó là một lỗi khuôn khổ? –