如何解决如何使用Objective-C解析日期字符串
| 我如何解析具有此格式“ 2011052620110529”的NSString,以将每个值作为NSString获得?我试图写这个NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@\"yyyyMMddyyyyMMdd\"];
但我认为这不正确...请帮助我
解决方法
(我假设这里的意思是“将其解析为日期”,而不是“将其解析为两个字符串。”您的问题尚不清楚。)
该字符串不能表示一个有效时间。相反,它代表(大概)一个时间范围。
您必须先将字符串拆分为两个,然后再解析两个日期,然后获取它们之间的间隔。假设每个组件始终为8个字符长:
NSString *strComplete = ...;
NSString *strFirstDate = [strComplete substringToIndex: 8];
NSString *strSecondDate = [strComplete substringFromIndex: 8];
NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@\"yyyyMMdd\"];
NSDate *firstDate = [formatter dateFromString: strFirstDate];
NSDate *secondDate = [formatter dateFromString: strSecondDate];
NSTimeInterval timeInterval = [secondDate timeIntervalSinceDate: firstDate];
,您想解析数字还是什么?您正在听句子。
看一下NSString的类引用,它很容易将字符串分解成更多部分。
[yourString subStringWithRange:NSMakeRange(location,length)];
,您的NSString值包含2个日期,而不是一个。因此,您将无法使用NSDateFormatter
一步解析它。您需要先解析前三个字符,然后分别使用[s substringWithRange:NSMakeRange(0,8)]
和[s substringWithRange:NSMakeRange(8,8)]
提取每个8个字符,然后分别解析每个日期。然后,您可以使用\“ yyyyMMdd \”这样的格式将这些子字符串传递到日期格式化程序中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。