Мне нужно иметь возможность конвертировать дату в метку времени, эпоху в миллисекундах. Все, что я вижу в Интернете, - это преобразование миллисекунд в NSDate, а не наоборот. Любая помощь там?
Преобразование NSDate в миллисекунду времени
Ответ 1
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
Ответ 2
timeIntervalSince1970 вернет секунды с 1970 года. Есть другие методы timeIntervalSince, если необходимо.
Ответ 3
timeIntervalSince1970 умножить возвращаемое значение на 1000 потому что возвращаемое значение находится во втором не в миллисекундах любезно проверьте, что веб-сайт для большего тестирования http://currentmillis.com/