簡體   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