NSDate точность теряется при преобразовании в NSNumber милисекунды - PullRequest
0 голосов
/ 23 марта 2012

Я хочу получить NSDate, например Date (). GetTime () в Java, милисекунды с 1970 г. Но когда я это делаю, я теряю точность и получаю другую дату

NSDate *nowDate = [NSDate date];
NSNumber *nowLong = [[NSNumber numberWithFloat: 1000.0 * [nowDate timeIntervalSince1970]] retain];
NSLog(@"nowDate %@", nowDate);
NSLog(@"nowLong %f", [nowLong doubleValue]);

NSNumber *nowNumber = [NSNumber numberWithDouble:([nowLong doubleValue]/1000.0)];
NSTimeInterval timeInterval = [nowNumber doubleValue];
NSDate *nowDateFromLong = [NSDate dateWithTimeIntervalSince1970:timeInterval];
NSLog(@"nowDateFromLong %@", nowDateFromLong);

// Консоль вывода

nowDate 2012-03-23 ​​18:34:42 + 0000

сейчасДолг. 1332527628288.000000

nowDateFromLong 2012-03-23 ​​18:33:48 + 0000

Мне действительно нужно получить дату в миллисекундах, например, Java, поэтому любая помощь будет принята!

1 Ответ

1 голос
/ 23 марта 2012

Просто преобразовать в double, а не с плавающей точкой:

NSNumber * nowLong = [[NSNumber numberWithDouble: 1000.0 * [nowDate timeIntervalSince1970]] сохранить];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...