如何使用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 \”这样的格式将这些子字符串传递到日期格式化程序中。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...