2013-11-04 55 views
0

我試圖從EXIF最新數據解析到NSDate返回零。下面是從圖像文件中取出的樣品日期字符串:NSDateFormatter dateFromString解析EXIF數據

2013:10:15 19:19:31

正是在year:month:day 24hour:minute:second格式。我使用下面的代碼來解析這一點:

NSDateFormatter *formatter = [[NSDateFormatter alloc] initWithDateFormat:@"yyyy:MM:dd HH:mm:ss" allowNaturalLanguage:YES]; 
formatter.formatterBehavior = NSDateFormatterBehavior10_4; 
formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; 
NSDate *date = [formatter dateFromString:dt]; 

如果我不把它抱怨上10.0格式化嘗試的10.4區域設置標識符格式化行爲。 (我在小牛隊,我認爲這是對小牛隊的一個新的問題)反正我試過不設置語言環境可言,設置區域設置en_US_POSIX,而不是僅僅en_US組合,設置格式時區,日期改變yyyyYYYY格式,並allowNaturalLanguageNO,然而,dateFromString總是返回nil。我的應用程序在OS X Mavericks上運行,我的系統語言是英語,如果有問題,我的區域將設置爲土耳其語。我希望我的應用程序僅爲英文版,與用戶所在地區無關(包括日期格式)。我已經看到這個問題:Parsing EXIF date string to NSDate但即使我嘗試確切的步驟,格式化程序返回零爲dateFromString。日期格式化程序有什麼問題?

+0

它的工作。奇怪的。它看起來像格式化程序中的一個錯誤。你能不能將這個帖子作爲答案發布,以便我可以接受它,並對日期格式化程序(如果有)的這種奇怪行爲進行任何可能的解釋? –

+1

它看起來像你正在做的一切正確 - 沒有解釋,其他gremlins。 –

回答

2

這似乎是initWithDateFormat初始化的問題。 根據該文件,它會創建一個使用「OS X 10.0版格式化行爲」格式化,但我不知道那是什麼。並明確地設置行爲NSDateFormatterBehavior10_4似乎也沒有幫助。

使用

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"yyyy:MM:dd HH:mm:ss"]; 
NSDate *date = [formatter dateFromString:@"2013:10:15 19:19:31"]; 

產生預期的結果。

+0

將這個報告給蘋果的bug也是一個好主意。我現在要做。 –