2013-02-12 35 views
5

Tôi đã đoạn mã sau đó định dạng ngày tháng và thời gian của tôi vào chuỗi như:Cách thêm định dạng viết tắt thông thường vào ngày trong iOS, ví dụ: "Th", "st"

Thứ Hai 25 tháng 10, năm 2013 - 14:56:34

NSDate *today = [[NSDate alloc] init]; 
dateFormatter = [[NSDateFormatter alloc] init]; 
[self.dateFormatter setDateFormat:@"EEEE, MMMM dd YYYY - HH:mm:ss"]; 

NSString *currentTime = [self.dateFormatter stringFromDate: today]; 
self.timerLabel.text = currentTime.uppercaseString; 

Nó hoạt động tốt . Nhưng làm thế nào để tôi đặt "th" hoặc "rd" hoặc "st" một cách thích hợp cho đến ngày tức là sau 25 trong ví dụ trên?

Trả lời

5
NSDateFormatter *format = [[NSDateFormatter alloc] init]; 
[format setDateFormat:@"MMMM dd"]; 

NSDate *now = [[NSDate alloc] init]; 

NSString *dateString = [format stringFromDate:[now dateByAddingTimeInterval:(-60*60*24*10)]]; 
NSMutableString *tempDate = [[NSMutableString alloc]initWithString:dateString]; 
int day = [[tempDate substringFromIndex:[tempDate length]-2] intValue]; 
switch (day) { 
    case 1: 
    **case 21: 
    case 31:** 
     [tempDate appendString:@"st"]; 
     break; 
    case 2: 
    **case 22:** 
     [tempDate appendString:@"nd"]; 
     break; 
    case 3: 
    **case 23:** 
     [tempDate appendString:@"rd"]; 
     break; 
    default: 
     [tempDate appendString:@"th"]; 
     break; 
} 
NSLog(@"%@",tempDate); 
+10

Có cách nào được bản địa hóa để thực hiện việc này không? – keegan3d

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