如何修改系统时间?delphi没有封装这样的api吗?

netsong 2001-06-08 09:22:00
...全文
158 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
weizhi 2001-06-08
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var st:TSystemTime;
begin
DateTimeToSystemTime(datetimepicker1.DateTime-1/3,st);
SetSystemTime(st);
end;
9527 2001-06-08
  • 打赏
  • 举报
回复
俺的方法就不用减
guqiang 2001-06-08
  • 打赏
  • 举报
回复
中国与美国时差8个小时
要减8
netsong 2001-06-08
  • 打赏
  • 举报
回复
不会吧,当年月日确定以后,dayofweek已经确定了呀!!!
我这样写
var st: TSystemTime;
begin
GetSystemTime (st);
with st do
begin
wYear := 2000;
wMonth := 1;
wDay := 1;
wHour := 20;
wMinute := 0;
wSecond := 0;
wMilliseconds := 0;
end;
SetSystemTime (st);
end;
为什么出现的日期是2000-1-2 4:00:00
wljcr 2001-06-08
  • 打赏
  • 举报
回复
去开发文档中心看看俺的文档
9527 2001-06-08
  • 打赏
  • 举报
回复
buf:array[0..255] of char;
sString:string;
dResult:DWORD;
begin
With TQuery.Create(frmSetLogin) do
begin
DataBaseName:=frmMenu.dbHimis.Databasename;
SQL.Add('Select GetDate() As Now');
Open;
if Abs((FieldByname('Now').AsDateTime-Now))>1/1440.0 then
begin
if Application.MessageBox('工作站时钟与服务器不一致,要矫正吗?','时钟不一致',MB_OKCANCEL+MB_ICONQUESTION)=ID_OK then
begin
GetEnvironmentVariable('Comspec',buf,sizeof(buf));
SQL.Clear;
SQL.Add('Select Convert(char(20),GetDate(),20) As Now');
Open;
sString:='/c Date '+Copy(FieldByName('Now').AsString,1,10);
dResult:=ShellExecute(0,'open',buf,Pchar(sString),nil,SW_Hide);
sString:='/c Time '+Copy(FieldByName('Now').AsString,12,8);
dResult:=ShellExecute(0,'open',buf,Pchar(sString),nil,SW_Hide);
if dResult<31 then
Showmessage('设置时间错,请检查合法权限');
end;
end;
end;
end;
inprises 2001-06-08
  • 打赏
  • 举报
回复
使用SetSystemTime,
var
a:_SYStemTIME;//部分参数可忽略,如下
begin
a.wYear := 2000;
a.wDay := 8;
a.wHour := 10;
a.wMonth := 6;
a.wMinute :=19;
a.wMilliseconds := 20;
setsystemtime(a);
end;

_SYStemTIME结构:
typedef struct _SYSTEMTIME {
WORD wYear; //年
WORD wMonth; //月
WORD wDayOfWeek; //星期
WORD wDay; //日
WORD wHour; //小时
WORD wMinute; //分
WORD wSecond; //秒
WORD wMilliseconds;//毫秒
} SYSTEMTIME;

comanche 2001-06-08
  • 打赏
  • 举报
回复
SetSystemTime 时要 SYSTEMTIME 每个参数都有值,要不然不成功
ReganCai 2001-06-08
  • 打赏
  • 举报
回复
SetSystemTime
jilimi 2001-06-08
  • 打赏
  • 举报
回复
有个Windows的API可以做到,我现在不记得了,你可以自已查一下。
pipai 2001-06-08
  • 打赏
  • 举报
回复
Var ltime,stime : TsystemTime;
Begin
//设置事件可用API函数SetLocalTime和SetsystemTime,
//不过在NT下进程必须有权限SE_SYSTEMTIME_NAME
//初始化ltime
...
SetLocalTime( ltime ); //与CMOS时间表示一致,一般用此函数

//初始化stime
...
SetSystemTime( ttime ); //是UTC时间,有Time Zone的换算
...
end;
skimwater 2001-06-08
  • 打赏
  • 举报
回复
关注
netsong 2001-06-08
  • 打赏
  • 举报
回复
啊???难道设置系统时间的时候还要考虑系统的时区设置?这个api难道只以美国时间的为基准?这个时间不是cmos时间?

1,183

社区成员

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

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