NSDateFormatter & NSDate dateFromString output null


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

但它每次都输出 null。请你能帮我做错什么吗?

你忘了创建NSDateFormatter

您应该替换行:

NSDateFormatter *dateFormat;

跟:

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

你需要创建

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

您必须设置年份,否则日期将显示为空。您可以使用当前年份并将字符串分成月份和日期,然后像这样设置"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);

我认为这对你有帮助。

最新更新