2011-08-18 33 views
3

我正在開發iPhone應用程序,用戶可以根據需要輸入日期格式。 問題是他沒有輸入有效的格式。 我不知道如何測試它?如何使用錯誤的NSDateFormatter測試NSDate?

例如,他輸入: 格式= @"evlzuhbpùi égkjz $çà i,ùé'po";

計算我的當前日期從這個錯誤格式:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:Format]; 
NSString *stringDate = [dateFormatter stringFromDate:[NSDate date]]; 
NSLog(@"%@", stringDate); 
[dateFormatter release]; 

我的字符串日期有錯誤的值或者有不正確的值。

有人可以告訴我如何測試我的日期格式嗎?

問候

回答

1

雖然您選擇使用有效日期格式說明驗證dateFormat,這將是真的很難拿出一個驗證dateFormat與所有可能的有效形式邏輯。

一個簡單但最佳的解決方案是將轉換後的date string轉換回NSDatesame dateFormat。如果結果日期是nil,那麼肯定是dateFormat是無效的。

// Set the dateFormat to NSDateFormatter 
[dateFormatter setDateFormat:Format]; 

// Get a string from NSDate using the date formatt 
NSString *stringDate = [dateFormatter stringFromDate:[NSDate date]]; 

// Convert "stringDate" to NSDate with the same dateFormat 
NSDate *date = [dateFormatter dateFromString:stringDate]; 

if (date == nil) // The dateFormat is not a valid one 
else // The dateFormat seems to be valid