获取当前时间

我试图得到当前的小时分钟和秒钟。 这是我使用的代码

NSDate *now = [NSDate date]; NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComponents *dateComponents = [gregorian components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:now]; [self.timerLabel setText:[NSString stringWithFormat:@"%@ %@ %@", [dateComponents hour], [dateComponents minute], [dateComponents second]]]; 

当我在self.timerLabel所在的行上运行应用程序崩溃时。

这里有什么问题?

 NSDateComponents *components = [[NSCalendar currentCalendar] components:NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit fromDate:[NSDate date]]; NSInteger hour= [components hour]; NSInteger minute = [components minute]; NSInteger second = [components second]; 

当我运行代码在这里工作正常。

代码中的以下行是什么? 你确定它在代码粘贴的第三行崩溃了吗? 也许你粘贴的代码和你的xcode不一样。

编辑:这是因为你正在使用属于UTF-8string的string%@。 [dateComponents小时]等正在返回NSInteger,所以你应该使用%d。

只是在做

  NSDate *datenow = [NSDate date]; 

你将有当前的date和时间,为了生成一个date的string表示,你应该使用NSDateFormatter的一个实例。