2012-10-16 67 views
1
NSString *dateString = [[items objectAtIndex:indexPath.row] objectForKey:@"date"]; 
NSLog(@"DATE: %@",dateString); 
// outputs 16/10 23:59:49 

NSDateFormatter *dateFormat; 
[dateFormat setDateFormat:@"dd/MM HH:mm:ss"]; 
NSDate *date = [dateFormat dateFromString:dateString]; 

NSLog(@"DATE: %@", date); 
// outputs null 

但它每次都输出空。 请你能帮助我,我做错了什么?NSDateFormatter&NSDate dateFromString outputs null

+3

初始格式化程序,NSDateFormatter * dateFormat = [[NSDateFormatter alloc] init]; – jcesarmobile

回答

0

你忘了创建NSDateFormatter

此时应更换行:

NSDateFormatter *dateFormat; 

有了:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
0

您需要创建

NSDateFormatter * dateFormatter = [[ NSDateFormatter alloc] 在里面];

+0

谢谢,我意识到这是一个愚蠢的错误! –

0

您必须设置年份,否则日期将显示为空。您可以使用当前年份并将字符串分隔成几个月和几天,然后像这样设置"dd-MM-yyyy"或您想要的任何其他方式。

NSString *string = @"16/10 23:59:49"; 
    NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
    [df setDateFormat:@"yyyy-MM-dd"]; 

    NSArray *arrayDateData = [string componentsSeparatedByString:@"/"]; 
    NSString *dayStr =[arrayDateData objectAtIndex:0]; 
    NSString *string1 =[arrayDateData objectAtIndex:1]; 
    NSString *monStr = [[string1 componentsSeparatedByString:@" "] objectAtIndex:0]; 

    NSString *timeString; 
    timeString=[NSString stringWithFormat:@"%d-%@-%@",2012,monStr,dayStr]; 
    NSDate *dateFromString = [[NSDate alloc] init]; 
    dateFromString=[df dateFromString:timeString]; 
    NSLog(@"date from string: %@",dateFromString); 

我认为这会对您有所帮助。