2011-11-16 68 views
0

我讓用戶在UITextField中輸入日期。當我格式化字符串並將其輸出到NSLog語句中時,我得到的日期值不正確。例如,當我輸入11-16-2011 11:43到文本字段中時,我在日誌中獲得2010-12-26 16:43:00 +0000。我的代碼如下:日誌中的日期/時間不正確

NSString *dateString = dateTextField.text; 

//create a NSDateFormatter that can be used to create a NSDate from the string 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"MM-dd-YYYY hh:mm"]; 
[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:-18000]]; 

//create a NSDate from the string using our formatter 
NSDate *alertTime = [formatter dateFromString:dateString]; 

NSLog(@"dateString is %@", alertTime); 

[formatter release]; 

謝謝!

回答

1

使用年份爲yyyy。來自文檔http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369-SW1

它使用yyyy指定年份組件。常見的錯誤是使用 YYYY。 yyyy指定日曆年,而YYYY指定ISO年份周曆中使用的年度 (「年份周」)。在大多數 的情況下,yyyy和yyyy的產量相同,但它們可能與 不同。通常你應該使用日曆年。

另外:

h小時[1-12]。

H小時[0-23]。

2

我在一週前發生了類似事情。經過一點挖掘,我不得不將我的格式從幾個小寫字母改爲大寫。

不知道這是否會工作,但嘗試改變

[formatter setDateFormat:@"MM-dd-YYYY hh:mm"]; 

這樣:

[formatter setDateFormat:@"MM-dd-yyyy HH:mm"]; 

P.S ......你可能會得到更多的答案,如果你開始接受幫助過你的答案。 :)

0

Louie的答案是正確的 - 但考慮使用UIDatePicker作爲用戶日期輸入。