请教设置系统时间的问题

duoduoqing 2004-03-02 10:02:52
_SYSTEMTIME TrueTime;
unsigned short ST[7] = {7,8,9,10,11,12,2005};
//SystemSet.LastTime.DecodeDate(&ST[6], &ST[5], &ST[4]);
//SystemSet.LastTime.DecodeTime(&ST[3], &ST[2], &ST[1], &ST[0]);
TrueTime.wYear = 2005;
TrueTime.wMonth = ST[5];
TrueTime.wDay = ST[4];
TrueTime.wHour = ST[3];
TrueTime.wMinute = ST[2];
TrueTime.wSecond = ST[1];
TrueTime.wMilliseconds = ST[0];
SetSystemTime(&TrueTime);
我这样设置时间总是错的
为什么
大家还有别的设置方法吗?
...全文
119 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jishiping 2004-06-29
  • 打赏
  • 举报
回复
应该调用 SetLocalTime 这个函数,SetSystemTime 设定的是格林威治时间,而不是本地时间。北京时间,比格林威治时间早8小时。
xdzha 2004-06-25
  • 打赏
  • 举报
回复
不好意思,上面的函数名写错了,呵呵 ^o^ ,因该为
SelfDefSetSystemTime(TDateTime dtNow) //需要将系统设置为dtNow所代表的时间
xdzha 2004-06-25
  • 打赏
  • 举报
回复
SetSystemTime(TDateTime dtNow) //需要将系统设置为dtNow所代表的时间
{
TIME_ZONE_INFORMATIN tzi;
SYSTEMTIME stUTC, stLocal;

DateTimeToSystemTime(dtNow, stUTC);
GetTimeZoneInformation(&tzi);
tzi.Bias = 0 - tzi.Bias;
if (!SystemTimeToTzSpecificLocalTime(&tzi, &stUTC, &stLocal)) //时区转换
{
//出错
return;
}

if (!SetSystemTime(&stLocal)) //设置时间
{
//出错
return;
}

//完成
}

就是这样了
freshman2003 2004-06-23
  • 打赏
  • 举报
回复
SetSystemTime这个API函数在win2000里会有错误,你查这个函数的帮助就知道。

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧