您的位置:

使用C++获取系统时间的方法分享

一、使用系统API函数获取时间

在C++中使用系统API函数可以方便地获取当前系统时间。Windows下使用GetLocalTime()函数,Linux下使用time()函数。下面是Windows下获取当前时间代码示例:

#include 
#include 
   
using namespace std;
int main()
{
    SYSTEMTIME sys;
    GetLocalTime(&sys);
    cout << "现在的年份是:" << sys.wYear << endl;
    cout << "现在的月份是:" << sys.wMonth << endl;
    cout << "现在的日期是:" << sys.wDay << endl;
    cout << "现在的星期是:" << sys.wDayOfWeek << endl;
    cout << "现在的小时是:" << sys.wHour << endl;
    cout << "现在的分钟是:" << sys.wMinute << endl;
    cout << "现在的秒数是:" << sys.wSecond << endl;
    cout << "现在的毫秒数是:" << sys.wMilliseconds << endl;
    return 0;
}

   
  

上述代码使用SYSTEMTIME结构体,将当前系统时间存入sys变量中,然后通过cout输出。使用这种方式可以精确地获取到当前的年份、月份、日期、小时、分钟和秒数等信息。

二、使用ctime库获取时间

使用ctime库是另一种获取当前时间的方式,它包含在C++标准库中,无需额外安装。ctime库可以将以秒为单位的UNIX时间(1970年1月1日开始的秒数)转化为本地时间。下面是使用ctime库获取当前时间的代码示例:

#include 
#include 
   
using namespace std;
int main()
{
    time_t now = time(0);
    char* localTime = ctime(&now);
    cout << "当前时间:" << localTime << endl;
    return 0;
}

   
  

上述代码中,time()函数获取当前时间的UNIX时间,并将其存储在now变量中。ctime()函数将UNIX时间转换为本地时间字符串,并将其存储在localTime变量中。使用这种方式可以快速获取当前的本地时间。

三、使用chrono库获取时间

使用chrono库是另一种获取当前时间的方式,其提供了更加精细的时间单位和尺度,可以以微秒、纳秒等单位来获取时间。下面是使用chrono库获取当前时间的代码示例:

#include 
#include 
   
using namespace std;
using namespace chrono;
int main()
{
    auto now = system_clock::now();
    auto now_c = system_clock::to_time_t(now);
    cout << "现在的年份是:" << localtime(&now_c)->tm_year + 1900 << endl;
    cout << "现在的月份是:" << localtime(&now_c)->tm_mon + 1 << endl;
    cout << "现在的日期是:" << localtime(&now_c)->tm_mday << endl;
    cout << "现在的星期是:" << localtime(&now_c)->tm_wday << endl;
    cout << "现在的小时是:" << localtime(&now_c)->tm_hour << endl;
    cout << "现在的分钟是:" << localtime(&now_c)->tm_min << endl;
    cout << "现在的秒数是:" << localtime(&now_c)->tm_sec << endl;
    return 0;
}

   
  

上述代码中,使用系统时钟(system_clock)获取当前时间,将其存储在now变量中。将now变量转换为UNIX时间,并将其存储在now_c变量中。使用localtime()函数将UNIX时间转换为tm结构体,然后输出各个时间信息。使用chrono库能够提供更精细的时间单位,方便程序员对时间进行计算。

四、总结

C++提供了多种方式获取系统时间,包括使用系统API函数、ctime库和chrono库。不同的方式提供不同的精度和尺度,开发者可以根据需求选择适当的方式。