【问题标题】: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);