web-dev-qa-db-fra.com

Convertir une nsdate en millisecondes Epoch Time

Je dois être capable de convertir une date à un horodatage, une époque en millisecondes. Tout ce que je vois en ligne, vous devez convertir des millisecondes vers Nsdate et non l'inverse. Toute aide là-bas?

20
bakwarte

NstimeInterval est un double qui contient déjà des données sous-deuxième après le point décimal. En fonction de ce dont vous avez besoin, votre conversion pourrait être simple comme en multipliant par 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
49
Ben Flynn

timeIntervalsince1970 reviendra des secondes à partir de 1970. Il existe d'autres méthodes de TimeInterValince si nécessaire.

https://developer.apple.com/cocoa/mac/documentation/cocoa/reference/foundation/classes/nsdate_class/reference/reference.html#/apple_ref/ocr/instm/nsdate/timeItTervaux197

8
madmik3

timeIntervalsinceft1970 Multipliez la valeur de retour d'ici 1000 car la valeur renvoyée est en second lieu à Millisecond, veuillez vérifier ce site Web pour plus de tests http://currentmillis.com/

2
Amr Angry