2016-03-07 116 views
-1

我的字符串值爲01012016,我想向用戶顯示如01-01-2016。爲此,我使用下面的代碼如何將NSString轉換爲日期格式化的字符串

-(NSString *)dateToFormatedDate:(NSString *)dateStr { 

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; 

    [dateFormatter setDateFormat:@"MM-dd-yyyy"]; 
    NSDate *date = [dateFormatter dateFromString:dateStr]; 

    NSLog(@"date is %@", [dateFormatter stringFromDate:date]); 
    return [dateFormatter stringFromDate:date]; 
} 

但是這種方法總是返回零。我已經嘗試過模擬器和設備。 我無法弄清楚我在這裏做錯了什麼

+3

你試過'[dateFormatter setDateFormat:@ 「MMDDYYYY」];'讀取字符串時,然後'[dateFormatter setDateFormat:@ 「MM-DD-YYYY」];'當寫它? – Putz1103

+0

有關日期格式的示例,請參閱http://nsdateformatter.com。 –

回答

2

NSDateFormatter的格式與您試圖傳遞它的字符串不匹配。看看此相關的問題...

Converting a string to an NSDate

你想要做的是設置NSDateFormatter相匹配的字符串,那麼一旦你創建從字符串的NSDate對象是什麼,該NSDateFormatter改變您所需的輸出格式。事情是這樣的......

-(NSString *)dateToFormatedDate:(NSString *)dateStr { 

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; 

    [dateFormatter setDateFormat:@"MMddyyyy"]; 
    NSDate *date = [dateFormatter dateFromString:dateStr]; 
    [dateFormatter setDateFormat:@"MM-dd-yyyy"]; 

    NSLog(@"date is %@", [dateFormatter stringFromDate:date]); 
    return [dateFormatter stringFromDate:date]; 
} 
相關問題