将NSDate转换为毫秒纪录时间

时间:2012-02-17 00:04:44

标签: ios xcode nsdate epoch

我需要能够将日期转换为时间戳,一个以毫秒为单位的纪元。 我在网上看到的只是将毫秒转换为NSDate,而不是相反。有任何帮助吗?

3 个答案:

答案 0 :(得分:49)

NSTimeInterval是一个双精度数,它已包含小数点后的亚秒数据。根据您的需要,您的转化可能很简单,只需乘以1000。

- (void)testDateFormat
{
    NSDate *date = [NSDate date];
    NSLog(@"Time: %f", floor([date timeIntervalSince1970] * 1000));
    NSLog(@"Time: %f", floor([date timeIntervalSince1970]));
    NSLog(@"Time: %lli", [@(floor([date timeIntervalSince1970] * 1000)) longLongValue]);
    NSLog(@"Time: %lli", [@(floor([date timeIntervalSince1970])) longLongValue]);
}

// Result
// 2013-04-15 13:28:11.284 TestApp[10469:907] Time: 1366057691284.000000
// 2013-04-15 13:28:11.286 TestApp[10469:907] Time: 1366057691.000000
// 2013-04-15 13:28:11.287 TestApp[10469:907] Time: 1366057691284
// 2013-04-15 13:28:11.288 TestApp[10469:907] Time: 1366057691

答案 1 :(得分:8)

答案 2 :(得分:2)

timeIntervalSince1970将返回值乘以1000 因为返回的值是秒,而不是毫秒 请检查该网站以获得更多测试http://currentmillis.com/