Iphone 通过XML解析设置NSDate属性后使用NSDateFormatter时为空值
我正在使用以下代码尝试在表单元格中的某个时间显示Iphone 通过XML解析设置NSDate属性后使用NSDateFormatter时为空值,iphone,null,nsdate,nsdateformatter,Iphone,Null,Nsdate,Nsdateformatter,我正在使用以下代码尝试在表单元格中的某个时间显示 TimeSlot *timeSlot = [timeSlots objectAtIndex:indexPath.row]; NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init]; [timeFormat setDateFormat:@"HH:mm:ss"]; NSLog(@"Time: %@", timeSlot.time); NSDate *mydate = timeSlot.
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);
日志输出如下所示:
- 2010-04-1410:23:54.626MyApp[1080:207]时间:2010-04-14T10:23:54
- 2010-04-1410:23:54.627MyApp[1080:207]时间:2010-04-14T10:23:54
- 2010-04-14 10:23:54.627 MyApp[1080:207]时间:(空)
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setDateFormat:@"HH:mm:ss"];
NSDate *now = [[NSDate alloc] init];
NSString *theDate = [dateFormat stringFromDate:now];
NSString *theTime = [timeFormat stringFromDate:now];
你需要设置
[timeFormat setDateFormat:@"dd MMMM YYYY"];
以前
NSString *theTime = [timeFormat stringFromDate:mydate];
这一行基于编辑的问题: 您正在将XML中的字符串设置到
时隙
对象中NSDateFormatter
希望得到一个NSDate
来格式化,所以这就是原始问题失败的原因
因此,您要问的是第二个问题,即如何从NSString创建NSDate。查看文档,您可以使用dateFromString:
,getObjectValue:forString:range:error:
或getObjectValue:forString:errorDescription:
。因此:
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
currentTimeSlot.time = [df dateFomString:string];
如果是nil,您应该使用一种错误返回方法。我不是已经在这样做了吗?日期面具是错误的,因为我在玩它,但我已经在这个顺序,不是吗?我是不是漏掉了什么?你给你试试这个密码。。。只要插入那一行。。。然后看看它是否工作……我是说,而不是[timeFormat setDateFormat:@“HH:mm:ss”];试试[timeFormat setDateFormat:@“dd-MMMM-YYYY”];嗨,我试过了,发现错误在其他地方,请看我的补充,谢谢lugte098,我认识到这段代码,这是我过去代码的基础。我知道我把面具弄错了,我会把它改成上面的样子,但这又不起作用了,在我来stackoverflow之前,我把面具弄乱了。这是非常感谢的一点-我正在努力寻找正确的日期面具,但“t”部分也为我解决了这个问题。保罗,干杯!
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
currentTimeSlot.time = [df dateFomString:string];