原文链接 -> 传送门
SYSTEMTIME 结构
SYSTEMTIME 结构指定日期与时间,月,天,年,星期,小时,分钟,秒和毫秒,都是用单独的成员表示。该时间要么是世界标准时间(UTC),要么是本地时间(取决于正在被调用的函数)。
结构原型:
typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME;
成员解析:
|
成员 |
含义 |
||||||||||||||||||||||||||
|
wYear |
年。该成员的有效值从 1601 到 30827 |
||||||||||||||||||||||||||
|
wMonth |
月。该成员是下列值中的某一个:
|
||||||||||||||||||||||||||
|
wDayOfWeek |
星期。该成员是下列值中的某一个:
|
||||||||||||||||||||||||||
|
wDay |
一个月中的某一天。该成员的有效值从 1 到 31 |
||||||||||||||||||||||||||
|
wHour |
小时。该成员的有效值从 0 到 23 |
||||||||||||||||||||||||||
|
wMinute |
分钟。该成员的有效值从 0 到 59 |
||||||||||||||||||||||||||
|
wSecond |
秒。该成员的有效值从 0 到 59 |
||||||||||||||||||||||||||
|
wMilliseconds |
毫秒。该成员的有效值从 0 到 999 |
备注:
1. 不建议你通过对 SYSTEMTIME 结构中的值进行加和减来获取相对时间。取而代之,你应该:
- 将 SYSTEMTIME 结构转换为 FILETIME 结构。
- 将产生的 FILETIME 结构拷贝到 ULARGE_INTEGER 结构。
- 对 ULARGE_INTEGER 值进行正常的 64 位算术运算。
2. 系统可以通过与时间源同步来定期刷新时间。由于系统时间既可以向前又可以向后调整,所以不要比较系统的时间读数以确定运行时间。相反,使用 Windows Time 中描述的方法。
例子:
下边的例子演示使用 GetSystemTime 和 GetLocalTime 函数获取不同的时间值。
#include <windows.h>
#include <stdio.h>
void main()
{
SYSTEMTIME st, lt;
GetSystemTime(&st);
GetLocalTime(<);
printf("The system time is: %02d:%02d\n", st.wHour, st.wMinute);
printf(" The local time is: %02d:%02d\n", lt.wHour, lt.wMinute);
}
样本输出:
- The system time is: 19:34
- The local time is: 12:34
复制代码
需求:
|
Minimum supported client |
Windows 2000 专业版 [仅桌面应用程序] |
|
Minimum supported server |
Windows 2000 服务器版 [仅桌面应用程序] |
|
Header |
Winbase.h (包含于 Windows.h) |




