2011-02-04 23 views
7

Chuỗi mà xuất phát từ một nguồn dữ liệu của tôi được định dạng như thế này:NSDateFormatter dateFromString

2011-04-11 23:12:05

// dateString comes from my data source, and look like I've said like this. 
dateString = @"2011-04-11 23:12:05"; 

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"MMMM"]; 

NSDate *date = [formatter dateFromString:dateString]; 

Khi tôi đã tìm kiếm internet sau các chủ đề như thế này, câu trả lời luôn là dateString có định dạng sai. Nhưng dateString của tôi là một trong những cái đúng, đúng không?

Tại sao ngày trả về số không?

Trả lời

17

Chuỗi định dạng ngày là @"MMMM" có nghĩa là chuỗi bạn đang cố phân tích là tên đầy đủ của một tháng ("Tháng 1", "Tháng 10", v.v ...).

Bạn muốn một cái gì đó giống như hơn:

yyyy-MM-dd HH:mm:ss 

Kiểm tra các date formatting patterns để biết thêm.

+0

Tôi nên đề cập rằng tôi _wanted_ có một NSString với tên đầy đủ tháng từ * dateString của tôi. –

+0

dateFromString sẽ tạo ra một NSDate - không phải là một chuỗi. – xyzzycoder

+0

Suy nghĩ của tôi là nếu tôi chuyển đổi chuỗi thành một ngày và dòng sau ngày chuyển đổi thành tên tháng (chuỗi). Nhưng tôi không thể vượt qua được bước đầu tiên. Bạn cùng tôi không? –

1
// set norwegian locale 
    dateFormatter.locale=[[NSLocale alloc] initWithLocaleIdentifier:@"no_NO"];; 

    [email protected]"MMMM"; 
    NSString * monthString = [[dateFormatter stringFromDate:date] capitalizedString]; 
    NSLog(@"month: %@", monthString); 

Đây là ví dụ về tiếng Na Uy. Với ngôn ngữ của bạn, cần phải "se_SE"

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