在c++中是否有跨平台的方法来获取当前的日期和时间?


当前回答

你可以使用boost和chrono库:

#include <iostream>
#include <chrono>
#include <boost/date_time/posix_time/posix_time.hpp>

using boost::posix_time::to_iso_extended_string;
using boost::posix_time::from_time_t;
using std::chrono::system_clock;

int main()
{
  auto now = system_clock::now();
  std::cout << to_iso_extended_string(from_time_t(system_clock::to_time_t(now)));
}

其他回答

你可以使用boost和chrono库:

#include <iostream>
#include <chrono>
#include <boost/date_time/posix_time/posix_time.hpp>

using boost::posix_time::to_iso_extended_string;
using boost::posix_time::from_time_t;
using std::chrono::system_clock;

int main()
{
  auto now = system_clock::now();
  std::cout << to_iso_extended_string(from_time_t(system_clock::to_time_t(now)));
}

你也可以直接使用ctime():

#include <stdio.h>
#include <time.h>

int main ()
{
  time_t rawtime;
  struct tm * timeinfo;

  time ( &rawtime );
  printf ( "Current local time and date: %s", ctime (&rawtime) );

  return 0;
} 

我需要一种方法在每次更新列表时插入当前日期-时间。 简单地说,这似乎很有效。

#include<bits/stdc++.h>
#include<unistd.h>
using namespace std;
int main()
{   //initialize variables
    time_t now; 
    //blah..blah
    /*each time I want the updated stamp*/
    now=time(0);cout<<ctime(&now)<<"blah_blah";
}

ffead-cpp为各种任务提供了多个实用程序类,其中一个类是Date类,它提供了从Date操作到日期算术的许多特性,还有一个Timer类用于计时操作。你也可以看看。

你可以使用c++ 11时间类:

    #include <iostream>
    #include <iomanip>
    using namespace std;

    int main() {

       time_t now = chrono::system_clock::to_time_t(chrono::system_clock::now());
       cout << put_time(localtime(&now), "%F %T") <<  endl;
      return 0;
     }

把:

2017-08-25 12:30:08