Comment obtenir l’horodatage actuel en millisecondes depuis 1970, exactement comme Java

En Java, nous pouvons utiliser System.currentTimeMillis() pour obtenir l’horodatage actuel en millisecondes depuis l’époque qui est –

la différence, mesurée en millisecondes, entre l’heure actuelle et minuit, le 1er janvier 1970 UTC.

En C ++, comment obtenir la même chose?

Actuellement, je l’utilise pour obtenir l’horodatage actuel –

 struct timeval tp; gettimeofday(&tp, NULL); long int ms = tp.tv_sec * 1000 + tp.tv_usec / 1000; //get current timestamp in milliseconds cout << ms << endl; 

Cela a l’air bien ou pas?

Si vous avez access aux bibliothèques C ++ 11, consultez la bibliothèque std::chrono . Vous pouvez l’utiliser pour obtenir les millisecondes depuis l’époque Unix comme ceci:

 #include  // ... using namespace std::chrono; milliseconds ms = duration_cast< milliseconds >( system_clock::now().time_since_epoch() ); 

utilisez

 struct timeval tp; gettimeofday(&tp, NULL); long int ms = tp.tv_sec * 1000 + tp.tv_usec / 1000; 

référer ceci .

Si vous utilisez gettimeofday, vous devez lancer longtemps, sinon vous aurez des débordements et donc pas le nombre réel de millisecondes depuis l’époque: long int msint = tp.tv_sec * 1000 + tp.tv_usec / 1000; vous donnera un numéro comme 767990892 qui est rond 8 jours après l’époque ;-).

 int main(int argc, char* argv[]) { struct timeval tp; gettimeofday(&tp, NULL); long long mslong = (long long) tp.tv_sec * 1000L + tp.tv_usec / 1000; //get current timestamp in milliseconds std::cout << mslong << std::endl; } 

Cette réponse est assez similaire à celle d’ Oz , en utilisant pour C ++ – je ne l’ai pas saisi à Oz. bien que…

J’ai pris l’extrait original au bas de cette page et l’ai légèrement modifié pour en faire une application complète. J’adore utiliser ce petit truc. C’est fantastique si vous faites beaucoup de scripts et que vous avez besoin d’un outil fiable dans Windows pour obtenir une époque en millisecondes sans avoir à utiliser VB, ou un code moins moderne et moins convivial.

 #include  #include  int main() { __int64 now = std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(); std::cout << now << std::endl; return 0; } 

Incluez et utilisez la fonction time .