从Unix时间戳创buildNSDate
如何从Unix时间戳创build一个NSDate?
channel.startDate = [NSDate dateWithTimeIntervalSince1970: (NSTimeInterval)[channelJson objectForKey:@"broadcastStartedTime"]];
我得到这个错误:
104:错误:在预期浮点值时使用的指针值
channels.startDate
是一个NSDate*
。 键“broadcastStartedTime”的值是由SBJsonparsing器库转换为NSNumber
或NSDecimalNumber
的Javascript Number
。
试试这个:
NSNumber *startTime = channelJson[@"broadcastStartedTime"]; channel.startDate = [NSDate dateWithTimeIntervalSince1970:[startTime doubleValue]];
你的值被困在一个指针types的NSNumber
。 dateWithTimeIntervalSince1970
方法期望一个基本的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)