NSDateFormatter& NSDate dateFromString输出null

时间:2012-10-16 08:15:05

标签: ios iphone xcode

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。 请问你能帮我解决我的错误吗?

3 个答案:

答案 0 :(得分:0)

您忘了创建NSDateFormatter

你应该替换line:

NSDateFormatter *dateFormat;

使用:

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

答案 1 :(得分:0)

您需要创建

  

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

答案 2 :(得分: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);

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