我不确定这是怎么回事。我试图从文件中加载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