VS2015中控制台程序获取系统时间的方法(2-1)

在VS2015的控制台程序中,可以通过C++标准库函数、Windows API函数和C++11的函数实现。

1 C++标准库函数

通过C++标准库函数time()和localtime_s()获取系统当前时间。

1.1 time()函数

1.1.1 功能

该函数的作用是获取系统当前时间距离1970年1月1日零时的时间,以秒作为单位。

1.1.2 格式

该函数的格式为

time_t time(time_t* time);

其中,参数time是一个指针,获取到的时间就保存到该指针指向的内容中。如果该参数是NULL,则不保存获取到的时间。该函数的返回值即为获取到的时间。time_t是一个long integer类型。

1.2 localtime_s()函数

1.2.1 功能

该函数的功能是将time()函数获取到的秒数转换为当前的年月日时分秒。

1.2.2 格式

该函数的格式为

errno_t localtime_s(struct tm* _tm, const time_t *time);

其中,参数_tm是tm结构的指针,转换后的时间就保存在该指针指向的内容中。

tm的结构定义如下

struct tm

{

    int tm_sec;   // seconds after the minute - [0, 60] including leap second

    int tm_min;   // minutes after the hour - [0, 59]

    int tm_hour;  // hours since midnight - [0, 23]

    int tm_mday;  // day of the month - [1, 31]

    int tm_mon;   // months since January - [0, 11]

    int tm_year;  // years since 1900

    int tm_wday;  // days since Sunday - [0, 6]

    int tm_yday;  // days since January 1 - [0, 365]

    int tm_isdst; // daylight savings time flag

};

该结构中包含了时间信息。参数time是“1.1 time()函数”中获取的时间秒数。如果转换成功,则localtime_s()函数的返回值是0,否则返回错误代码。

1.3 相关代码

获取当前系统时间的代码如下所示

time_t tt = time(NULL);

tm t;

localtime_s(&t, &tt);

printf("%d-%02d-%02d %02d:%02d:%02d",

t.tm_year + 1900, t.tm_mon, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec);

 

VS2015中控制台程序获取系统时间的方法(2-1)_第1张图片

图1 获取系统时间

需要注意的是,使用time()函数与localtime_s()函数,需要添加time.h头文件。

你可能感兴趣的:(C++基础)