1、使用API函数SetLocalTime进行本地时间设置。
1)SetLocalTime函数的原型:
BOOL SetLocalTime( const SYSTEMTIME *lpSystemTime );
输入参数lpSystemTime是一个SYSTEMTIME类型的参数,如果设置成功,返回true,本地时间将会变成lpSystemTime所指定的时间,否则返回false。
看一下SYSTEMTIME的格式:
typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME;
各成员的含义不用解释了吧。 2)我们来看一下如何利用SYSTEMTIME结构体和SetLocalTime函数进行本地时间的设置。
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME;
各成员的含义不用解释了吧。 2)我们来看一下如何利用SYSTEMTIME结构体和SetLocalTime函数进行本地时间的设置。
SYSTEMTIME st;
st.wYear = 2007;
st.wMonth = 11;
st.wDay = 24;
st.wHour = 3;
st.wMinute = 14;
st.wSecond = 0;
st.wMilliseconds = 0;
SetSystemTime(&st);
对比一下SYSTEMTIME结构体,可以发现,除wDayOfWeek成员之外,其它各成员都进行赋值了,甚至连wMilliseconds。使用这种方式进行系统时间设置时,会忽略wDayOfWeek成员,可以不进行该成员的赋值(即使你赋值了也不会被考虑的),但其它所有成员都必须时行赋值,否则无法成功地进行时间设置。
3)如果只想对其中的几项进行设置的话,可以先使用GetLocalTime函数来获取当前本地时间,然后再对相应的项进行修改,如下:
SYSTEMTIME st;
GetLocalTime(&st);
st.wHour = 3;
SetLocalTime(&st);