您的位置:

C++获取当前时间详解

一、C++获取当前时间月份最后一天

在C++中获取当前时间,并获取当前时间所在月份的最后一天,我们可以使用tm结构体和mktime函数实现。首先,我们使用time函数获取当前时间的时间戳,然后转化为tm结构体,并将其时间设置为下一个月的1号0点0分0秒。再将其时间减去86400秒(即一天的秒数),最后就可以获得该月份的最后一天的时间戳。具体代码如下所示:

#include <iostream>
#include <ctime>

using namespace std;

int main() {
  time_t rawtime;
  struct tm * timeinfo;
  time(&rawtime);
  timeinfo = localtime(&rawtime);
  timeinfo->tm_mday = 1;
  timeinfo->tm_mon++;
  mktime(timeinfo);
  timeinfo->tm_mday--;
  cout << "该月份的最后一天为:" << timeinfo->tm_mday << endl;
  return 0;
}

二、C++获取当前时间的秒数

在C++中获取当前时间的秒数,我们可以使用time函数获取当前时间的时间戳,然后将其强制转化为整型并取余60,就可以获取到当前时间的秒数。具体代码如下所示:

int main() {
  time_t rawtime;
  time(&rawtime);
  int sec = rawtime % 60;
  cout << "当前时间的秒数为:" << sec << endl;
  return 0;
}

三、C++获取当前时间年月日时分秒

在C++中获取当前时间的年月日时分秒,我们同样可以使用tm结构体和localtime函数实现。具体代码如下所示:

int main() {
  time_t rawtime;
  struct tm * timeinfo;
  time(&rawtime);
  timeinfo = localtime(&rawtime);
  cout << "当前时间为:" << asctime(timeinfo);
  return 0;
}

四、C++获取当前时间并格式化

在C++中获取当前时间并格式化输出,我们可以使用strftime函数实现。该函数的第一个参数为一个字符数组,用于存储格式化后的字符串;第二个参数为字符数组的大小;第三个参数为格式字符串,用于指定格式;第四个参数为tm结构体指针,用于指定时间。具体代码如下所示:

int main() {
  time_t rawtime;
  struct tm * timeinfo;
  char buffer[80];
  time(&rawtime);
  timeinfo = localtime(&rawtime);
  strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", timeinfo);
  cout << "当前时间为:" << buffer << endl;
  return 0;
}

五、C++获取当前时间的0点

在C++中获取当前时间的0点,我们可以使用tm结构体和mktime函数实现。该函数的作用是将tm结构体转化为time_t类型的时间戳,我们只需要将tm结构体的时间设置为0点即可。具体代码如下所示:

int main() {
  time_t rawtime;
  struct tm * timeinfo;
  time(&rawtime);
  timeinfo = localtime(&rawtime);
  timeinfo->tm_hour = 0;
  timeinfo->tm_min = 0;
  timeinfo->tm_sec = 0;
  mktime(timeinfo);
  cout << "当前时间的0点为:" << asctime(timeinfo);
  return 0;
}

六、C++获取当前时间转时间戳

在C++中获取当前时间并将其转化为时间戳,我们可以使用time函数实现。具体代码如下所示:

int main() {
  time_t rawtime;
  time(&rawtime);
  cout << "当前时间的时间戳为:" << rawtime << endl;
  return 0;
}

七、C++获取当前时间的时分秒毫秒

在C++中获取当前时间的时分秒毫秒,我们可以使用chrono头文件中的函数和类型实现。具体代码如下所示:

#include <iostream>
#include <chrono>

using namespace std;

int main() {
  auto now = chrono::system_clock::now();
  auto ms = chrono::duration_cast<chrono::milliseconds>(now.time_since_epoch()).count();
  auto s = chrono::duration_cast<chrono::seconds>(now.time_since_epoch()).count();
  s = s % 86400;
  auto hour = s / 3600;
  auto minute = (s - hour * 3600) / 60;
  auto second = s - hour * 3600 - minute * 60;
  auto millisecond = ms % 1000;
  cout << "当前时间为:" << hour << ":" << minute << ":" << second << "." << millisecond << endl;
  return 0;
}

八、Oracle获取当前时间

在Oracle数据库中获取当前时间,我们可以使用sysdate函数实现。具体代码如下所示:

SELECT sysdate FROM dual;

九、Qt获取当前时间

在Qt应用程序中获取当前时间,我们可以使用QDateTime类实现。具体代码如下所示:

#include <iostream>
#include <QDateTime>

using namespace std;

int main() {
  QDateTime currentDateTime = QDateTime::currentDateTime();
  QString currentDateTimeString = currentDateTime.toString("yyyy-MM-dd hh:mm:ss");
  cout << "当前时间为:" << currentDateTimeString.toStdString() << endl;
  return 0;
}