【发布时间】:2015-04-27 12:11:43
【问题描述】:
我从 UIDatePicker 获取输入,我的输出是这种格式
3:24:00 AM 但是当我尝试将其转换回 NSDate 并从那里返回一个空值时。
我的代码:
NSDate* sourceDate = self.timePicker.date;
NSString *dateString = [NSDateFormatter localizedStringFromDate:sourceDate
dateStyle:NSDateFormatterNoneStyle
timeStyle:NSDateFormatterMediumStyle];
NSLog(@"%@",dateString); //3:25:00 AM string value
将 dateString 转换为 NSDate
NSDate *dateVal=(NSDate *)dateString;
NSLog(@"%@", dateVal); // printing null in console
将 dateVal 转换为 long
long val=[d timeIntervalSince1970]*1000;
NSLog(@"%ld",val); // printing 0
我该如何解决这个问题?请帮帮我
我期望 NSDate 的时间部分的值很长
【问题讨论】:
-
因为您的
d值为零。 -
将 dateString 转换为 NSDate :您不能直接将 NSString 转换为 NSDate 您需要使用 DateFormatter。您对将 dateString 转换为 NSDate 有何期望?
-
好吧,如果它不是 nil(由于上面代码中没有显示的原因),那么你会得到“无法识别的选择器”,因为
timeIntervalSince1970不是 NSString 的方法。 -
NSDate *dateVal=(NSDate *)dateString;Casting 未转换。它所做的只是告诉编译器关闭。 -
这些问题被回答了数千次。搜索它。
标签: ios objective-c nsdate uidatepicker