2010-03-16 24 views
7

Tôi nghĩ rằng giải pháp là thực sự đơn giản, tôi chỉ không đi qua nó trực tuyến.Cho năm, tháng và ngày, tất cả trong int, làm thế nào tôi sẽ tạo ra một NSDate

Giả sử tôi được cung cấp int năm, int tháng, int ngày, int giờ, int phút, int giây .. làm thế nào để tôi tạo ra NSDate ra khỏi nó?

Tôi biết chúng tôi có thể sử dụng [NSDate initWithString:] nhưng tôi nghĩ nó sẽ phức tạp nếu tháng/ngày/giờ/phút/giây là một số có chữ số.

Trả lời

13

Giả sử tôi đang trao int year, int tháng, int ngày, int giờ, int min, int sec .. làm cách nào để tạo NSDate ra khỏi nó?

Đặt int vào đối tượng NSDateComponents, sau đó ask an NSCalendar object to change that into a date.

+0

+1 đây là cách thích hợp để làm điều đó –

+0

+1 Tôi biết từ lâu rồi nhưng đã quên. Cảm ơn! –

0

here tổng số tiền này tương đương với cách thực hiện.

//create a string that looks like this, "October 22, 2009" or whatever the values are 
NSString* d = [NSString stringWithFormat:@"%@ %@, %@", month, day, year]; 
NSDate* date = [NSDate dateWithNaturalLanguageString:d]; 

liên kết đó cũng hiển thị các tùy chọn khác để tạo ngày nếu bạn không thích phương pháp cụ thể này.

chỉ nhận ra rằng bạn nói bạn đã được đưa ra ints ... bạn có thể làm điều đó với định dạng chuỗi này:

[NSString stringWithFormat:@"%i/%i/%i", month, day, year]; 
+2

Điều này sẽ trả lại kết quả sai trong nhiều miền địa phương (bất kỳ nơi nào thứ tự của ngày, tháng và năm không khớp với cách bạn tạo chuỗi). –

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