我不確定這是怎麼回事。我試圖從文件中加載NSString *對象,將它轉換爲帶日期格式化程序的NSDate *,然後將小時和分鐘組件轉換回NSString,以便在Interface Builder中顯示時間。但是,而不是保存到文件中的時間,而是最終以每小時19分鐘和每分鐘0分鐘爲結束。 (不管放入什麼,程序加載四個不同的NSDates)NSDate不會正確加載/顯示
下面是從文件中加載日期的代碼(我用斷點檢查,並且數組確實有正確的數據,所以這不是問題)
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd hh:mm:ss a"];
date1 = [[df dateFromString:[loadArray objectAtIndex:3]] retain];
下面是顯示日期的代碼。
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comp = [[gregorian components:NSHourCalendarUnit|NSMinuteCalendarUnit fromDate:myDrug.date1] retain];
hourField1.text = [NSString stringWithFormat:@"%d", comp.hour];
minuteField1.text = [NSString stringWithFormat:@"%d", comp.minute];
(hourField1和minuteField1是接收的值,順便把IBOutlets)
我不知道,我已經走了錯在這裏,任何幫助,將不勝感激。謝謝!
更新: 在這裏的一些人的建議,我NSLogged的問題,我發現它的日期格式化程序不工作。例如,日期格式爲2011-02-14 06:00:00 GMT,日期格式化程序爲yyyy-MM-dd hh:mm:ss a,所以我不確定它爲什麼不起作用。
如何你填寫`loadArray`? – vikingosegundo 2011-02-14 20:38:23
直接從一個文件,它是[NSMutableArray arrayWithContentsOfFile:[self saveFilePath]] – Nicholas1024 2011-02-14 20:44:00