2011-05-25 20 views
0

如何解析NSString誰有這種形式「2011052620110529」誰獲得每個值作爲NSString?我試着寫這個如何解析日期字符串與Objective-C

NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease]; 
[formatter setDateFormat:@"yyyyMMddyyyyMMdd"]; 

,但我不認爲這是正確的......請幫助我要分析的數量還是什麼

回答

1

?你的句子聽到讀..

看看NSString's class reference,它很容易打破更多的部分字符串。

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

您的NSString值包含2個日期,而不是一個日期。因此,您將無法使用NSDateFormatter來一步解析它。你需要分別解析每個日期,首先提取前8個字符,然後是最後8個,使用類似[s substringWithRange:NSMakeRange(0,8)][s substringWithRange:NSMakeRange(8,8)]。然後你可以使用像「yyyyMMdd」這樣的格式將這些子字符串傳遞給日期格式化程序。

2

(我在這裏假設你的意思是「解析爲日期」,而不是「解析成兩個字符串。」你的問題是不明確的。)

該字符串不表示一個有效的時刻時間;相反,它代表了(可能)一段時間。

在解析兩個日期之前,你必須將字符串拆分爲兩部分,然後獲取它們之間的間隔。假設每個組件總是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];