从Unix时间戳创buildNSDate

如何从Unix时间戳创build一个NSDate?

channel.startDate = [NSDate dateWithTimeIntervalSince1970: (NSTimeInterval)[channelJson objectForKey:@"broadcastStartedTime"]]; 

我得到这个错误:

104:错误:在预期浮点值时使用的指针值

channels.startDate是一个NSDate* 。 键“broadcastStartedTime”的值是由SBJsonparsing器库转换为NSNumberNSDecimalNumber的Javascript Number

试试这个:

 NSNumber *startTime = channelJson[@"broadcastStartedTime"]; channel.startDate = [NSDate dateWithTimeIntervalSince1970:[startTime doubleValue]]; 

你的值被困在一个指针types的NSNumberdateWithTimeIntervalSince1970方法期望一个基本的NSTimeInterval (它在下面是一个double NSTimeInterval )。

使用-doubleValue

 // NSTimeInterval is just a typedef for double NSTimeInterval interval = [[channelJson objectForKey:@"broadcastStartedTime"] doubleValue]; channel.startDate = [NSDate dateWithTimeIntervalSince1970:interval]; 

你需要解开NSNumber:

 channel.startDate = [NSDate dateWithTimeIntervalSince1970:[[channelJson objectForKey:@"broadcastStartedTime"] doubleValue]]; 

NSTimeInterval (这是unix timestmap)到Swift中的NSDate转换:

 let timeInterval = NSDate().timeIntervalSince1970 // the the unix timestamp NSDate(timeIntervalSince1970: timeInterval)