14

C++でシステムの現在の日時を秒単位で取得するにはどうすればよいですか?

私はこれを試しました:

struct tm mytm = { 0 };
time_t result;

result = mktime(&mytm);

printf("%lld\n", (long long) result); 

しかし、私は得ました:-1?

4

6 に答える 6

18
/* time example */
#include <stdio.h>
#include <time.h>

int main ()
{
  time_t seconds;

  seconds = time (NULL);
  printf ("%ld seconds since January 1, 1970", seconds);

  return 0;
}
于 2013-01-14T09:21:51.927 に答える
9

ティックの表現が実際に整数であることを保証する C++11 バージョン:

#include <iostream>
#include <chrono>
#include <type_traits>

std::chrono::system_clock::rep time_since_epoch(){
    static_assert(
        std::is_integral<std::chrono::system_clock::rep>::value,
        "Representation of ticks isn't an integral value."
    );
    auto now = std::chrono::system_clock::now().time_since_epoch();
    return std::chrono::duration_cast<std::chrono::seconds>(now).count();
}

int main(){
    std::cout << time_since_epoch() << std::endl;
}
于 2013-01-14T09:35:25.097 に答える
6

これを試してください:うまくいくことを願っています。

#include <iostream>
#include <ctime>

using namespace std;

int main( )
{
   // current date/time based on current system
time_t now = time(0);

 // convert now to string form
char* dt = ctime(&now);

cout << "The local date and time is: " << dt << endl;

// convert now to tm struct for UTC
tm *gmtm = gmtime(&now);
dt = asctime(gmtm);
cout << "The UTC date and time is:"<< dt << endl;
}
于 2013-01-14T09:04:55.113 に答える
0

これにより、現在の日付/時刻が秒単位で表示されます。

#include <time.h>
time_t timeInSec;
time(&timeInSec);
PrintLn("Current time in seconds : \t%lld\n", (long long)timeInSec);
于 2019-02-01T12:52:53.263 に答える