在哪种系统上,unix or windows.
在UNIX上,可以使用date, time之类的命令!

解决方案 »

  1.   

    是的,是37号端口。
    如果是数据库服务器的话用
    select today from dual 比较方便。
      

  2.   

    TO:wwwunix(木易)  是在程序中.
      

  3.   

    select getdate from table 
      

  4.   

    在delphi5的fastnet控件组的NMTIME控件即可获得服务器的时间。
    端口号为37
      

  5.   

    用NETAPI32.dll 中的 NetRemoteTOD函数,我已经实现了Delphi的程序。
    但同样的函数在VC6写了以后运行居然说找不到服务器。
    把代码也给你吧。type
     PTime_Of_Day_Info = ^TTime_Of_Day_Info;
      TTime_Of_Day_Info = record
        tod_elapsedt  :Integer;
        tod_msecs     :Integer;
        tod_hours     :Integer;
        tod_mins      :Integer;
        tod_secs      :Integer;
        tod_hunds     :Integer;
        tod_timezone  :LongInt;
        tod_tinterval :Integer;
        tod_day       :Integer;
        tod_month     :Integer;
        tod_year      :Integer;
        tod_weekday   :Integer;
      end;
      function NetRemoteTOD(ServerName :PWideChar; var buffer :pointer) :Integer; stdcall; external 'netapi32.dll';
      function NetApiBufferFree(buffer : Pointer) :Integer; stdcall; external 'netapi32.dll';function TFrame2.GetTOD(ServerName: WideString): Integer;
    var Buffer     :pointer;
        Rek        :PTime_Of_Day_Info;
        ADate      :TDateTime;
        ATime      :TDateTime;
        THours,TMins,TSecs:Dword;
        TYear,TMonth,TDay       :DWord;
        systime:Tsystemtime;
    begin  result:=NetRemoteTOD(PWideChar(ServerName),
                           Buffer);
      if result=0 then
      begin
        Rek:=PTime_Of_Day_Info(Buffer);
        THours      :=Rek.tod_hours;
        TMins       :=Rek.tod_mins;
        TSecs       :=Rek.tod_secs;
     {
        If Rek.tod_timezone <> -1 then
        begin
          TTimeZone:=Rek.tod_timezone div 60;
        end
        else
          TTimeZone:=0;
      }
        TDay        :=Rek.tod_day;
        TMonth      :=Rek.tod_month;
        TYear       :=Rek.tod_year;    ADate:=EncodeDate(TYear, TMonth, TDay);
        ATime:=EnCodeTime(THours, TMins, TSecs, Rek.tod_weekday);
        DateTimeToSystemTime(Adate+Atime,systime);
        SetSystemTime(systime);//设了本机器的时间了。
      end;
      NetApiBufferFree(Buffer);
    end;
    要是你是要显示服务器时间的话,需要把 Adate+Atime-(TTimeZone/24)就是正确的
    时间了
      

  6.   

    运行结果类net time \\server /set /y
      

  7.   

    就是说你要是不想写这么多代码的话,
    用这一句
    WINEXEC('CMD /C NET TIEM \\SERVER /SET /Y') 
      

  8.   

    数据库服务器的话,可以用SQL取时间!
      

  9.   

    Nicky_he(尼克) :
    你的方法仅仅适用于NT。
      

  10.   

    是的,NetRemoteTOD() NT3.5以上支持。
    但是WINEXEC('CMD /C NET TIEM \\SERVER /SET /Y') 
    我是在win98下运行过的,不信可试。
    但要把cmd 改成 command