2010-05-25 54 views
0

我的Objective-C的新手,我得到這個瘋狂的問題...NSDateFormatter返回兩個不同的輸入相同的格式?

用於低精度測試案例:

dateString = @ 「2010-05-25 11點05分21秒」,轉換成功。

dateString = @「2010-03-01 15:54:36」,轉換失敗。

高精度測試用例:

dateString = @ 「2010-05-25 11:05:21.937113」,轉換成功。

dateString = @「2010-03-01 15:54:36.937113」,轉換失敗。

下面

是我的代碼:

// Date formatter 
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; 
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
[dateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss.SSSSSS"]; 
[dateFormatter setLocale:locale]; 

NSDateFormatter *lowPrecisionDateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
[lowPrecisionDateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4]; 
[lowPrecisionDateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"]; 
[lowPrecisionDateFormatter setLocale:locale]; 

// try high precision first, if fail, then go ahead to low precision. 
NSDate *date = [dateFormatter dateFromString:dateString]; 
if(!date){ 
    date = [lowPrecisionDateFormatter dateFromString:dateString]; 
} 

任何幫助,高度讚賞!

回答

4

這只是一個猜測,但我認爲它與使用24小時日格式而不是AM和PM有關。我相信如果你在你的setDateFormat字符串中使用HH而不是hh,它應該可以工作。

編輯:

其實,我很有信心,這是它在尋找this blog posting後。

+0

感謝隊友,隔夜工作真的讓我失去了焦點! :( – sunnycmf 2010-05-26 02:17:39

相關問題