请教设置系统时间的问题

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);
我这样设置时间总是错的
为什么
大家还有别的设置方法吗?
...全文
82 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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里会有错误,你查这个函数的帮助就知道。
回复
相关推荐
发帖
Windows SDK/API
创建于2007-08-02

1206

社区成员

C++ Builder Windows SDK/API
申请成为版主
帖子事件
创建了帖子
2004-03-02 10:02
社区公告
暂无公告