【发布时间】:2013-08-26 07:13:55
【问题描述】:
我知道这里有很多与此主题有关的问题。但是,我似乎无法解决我的问题。
我有这个字符串,例如“2013-08-26 12:11:51 10:17:25”,我只想抓取“2013-08-26”,然后将其转换回字符串.我尝试了很多方法都没有成功:
NSMutableString *visitDate = [[NSMutableString alloc] initWithString:@"2013-08-26 10:17:25"];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSDate *date = [dateFormat dateFromString:visitDate];
NSLog(@"date: %@", date);
NSMutableString *returnConvertedDateString = [[NSMutableString alloc]initWithString:(NSMutableString *)date];
NSLog(@"converted string: %@", returnConvertedDateString);
上面NSLog语句的结果是:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSPlaceholderMutableString initWithString:]: nil argument'
我也试过了:
- (NSMutableString *) convertDateToString : (NSMutableString *)visitDate{
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *components = [calendar components:units fromDate:(NSDate *)visitDate];
NSMutableString *returnConvertedDateString = [[NSMutableString alloc]initWithFormat:@"%ld-%ld-%ld", (long)[components year], (long)[components month],(long)[components day]];
return returnConvertedDateString;
}
【问题讨论】:
-
NSLog 语句的结果是什么?
-
是否有理由转换为日期并返回字符串?从你的问题看来,一个简单的正则表达式提取就可以完成这项工作......
-
它给出了一个错误。 “由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'*** -[NSPlaceholderMutableString initWithString:]: nil argument'”
-
尝试用 NSString 初始化时间字符串。像 NSString *visitDate = @"2013-08-26 12:11:51";显然删除了最后一部分。谢谢@CarlVeazey。
-
您的输入字符串没有任何意义。那是什么日期格式?
标签: ios objective-c nsstring nsdate nsdateformatter