繁体   English   中英

如何使用 Objective-C 解析日期字符串

[英]How to parse a date string with 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 的 class 参考,它很容易在更多部分中分解字符串。

[yourString subStringWithRange:NSMakeRange(location,length)];

您的 NSString 值包含 2 个日期,而不是一个。 因此,您将无法使用NSDateFormatter一步解析它。 您需要先提取前 8 个字符,然后提取后 8 个字符,分别使用[s substringWithRange:NSMakeRange(0,8)][s substringWithRange:NSMakeRange(8,8)]类的东西来分别解析每个日期。 然后,您可以使用“yyyyMMdd”之类的格式将这些子字符串传递给日期格式化程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM