I am using the following code to try and display in a time in a table cell.
TimeSlot *timeSlot = [timeSlots objectAtIndex:indexPath.row];
NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setDateFormat:@"HH:mm:ss"];
NSLog(@"Time: %@", timeSlot.time);
NSDate *mydate = timeSlot.time;
NSLog(@"Time: %@", mydate);
NSString *theTime = [timeFormat stringFromDate:mydate];
NSLog(@"Time: %@", theTime);
The log output is this:
- 2010-04-14 10:23:54.626 MyApp[1080:207] Time: 2010-04-14T10:23:54
- 2010-04-14 10:23:54.627 MyApp[1080:207] Time: 2010-04-14T10:23:54
- 2010-04-14 10:23:54.627 MyApp[1080:207] Time: (null)
I am new to developing for the iPhone and as it all compiles with no errors or warnings I am at a loss as to why I am getting NULL in the log. Is there anything wrong with this code?
Thanks
Further Info
I used the code exactly from your answer lugte098 just to check and I was getting dates which leads me to believe that my TimeSlot class can’t have a date correctly set in it’s NSDate property. So my question becomes – how from XML do I set a NSDate property?
I have this code (abbreviated):
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *) string {
if ([currentElement isEqualToString:@"Time"]) {
currentTimeSlot.time = string
}
}
Thanks
Based on the edited question:
You are setting a string from your XML into your
timeSlotobject.NSDateFormatterexpects to be give anNSDateto format, so this is why your original question fails.So you are asking a second question, which is how to create a a NSDate from an NSString. See the docs, you can use either
dateFromString:,getObjectValue:forString:range:error:orgetObjectValue:forString:errorDescription:. Therefore:And if it is nil, you should be using one of the error returning methods.