2016-03-07 120 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]; 
} 
相关问题