【问题标题】:NSDateFormatter.dateFromString is returning (null)NSDateFormatter.dateFromString 正在返回(空)
【发布时间】:2013-10-08 04:48:47
【问题描述】:

我第一次使用NSDateFormatter,当我尝试从字符串中获取日期时,它给出了nil

NSDateFormatter * formatter =  [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];    
[formatter setDateFormat:@"MMM dd , YYYY"];    
[formatter setTimeZone:[NSTimeZone defaultTimeZone]];    
NSDate * date = [formatter dateFromString:@"2013-10-10 09:51:24 +0000"];
NSLog(@"%@",date);

请告诉我在这里缺少什么,提前谢谢。 . .

【问题讨论】:

标签: ios objective-c nsdate nsdateformatter


【解决方案1】:

请尝试以下代码

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

[formatter setDateStyle:NSDateFormatterMediumStyle];

[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss z"];

[formatter setTimeZone:[NSTimeZone defaultTimeZone]];

NSDate * date = [formatter dateFromString:@"2013-10-10 09:51:24 +0000"];

[formatter setDateFormat:@"MMM dd , YYYY"];

NSString *dateString = [formatter stringFromDate:date];

NSDate *outDate = [formatter dateFromString:dateString];

NSLog(@"%@,%@,%@",date,dateString,outDate);

【讨论】:

    【解决方案2】:

    试试这个方法...它可能对你有帮助

    NSDateFormatter * formatter =  [[NSDateFormatter alloc] init];
    
        [formatter setDateStyle:NSDateFormatterMediumStyle];
    
        [formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss z"];
    
        [formatter setTimeZone:[NSTimeZone defaultTimeZone]];
    NSDate * date = [formatter dateFromString:@"2013-10-10 09:51:24 +0000"];
    
        NSLog(@"%@",date);  // prints 2013-10-10 09:51:24 +0000
    
     [formatter setDateFormat:@"MMM dd , YYYY"];
    
    NSString *String = [formatter stringFromDate:date];
    
    NSDate *final = [formatter dateFromString:String];
    
    NSLog(@"%@,%@,%@",date,String,final);
    

    【讨论】:

    • 这对您有帮助吗?
    猜你喜欢
    • 2015-12-16
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    相关资源
    最近更新 更多