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
Convert a NSDate to milliseconds epoch time
提问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 madmik3
timeIntervalSince1970 will return seconds from 1970. There are other timeIntervalSince methods if needed.
timeIntervalSince1970 将返回 1970 年的秒数。如果需要,还有其他 timeIntervalSince 方法。
回答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/