ios 将 NSDate 转换为毫秒纪元时间

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/9321055/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-30 16:53:39  来源:igfitidea点击:

Convert a NSDate to milliseconds epoch time

iosxcodensdateepoch

提问by bakwarte

I need to be able to convert a date to a time stamp, an epoch in milliseconds. All I see online are for converting milliseconds to NSDate and not the other way round. Any help out there?

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

回答by Ben Flynn

NSTimeInterval is a double that already contains sub-second data after the decimal point. Depending what you need, your conversion could be a simple as multiplying by 1000.

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

回答by Amr Angry

timeIntervalSince1970 multiply the return value by 1000 because the returned value is in second not in millisecond kindly check that website for more testing http://currentmillis.com/

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