从服务器上获得网络时间的几种方法 – findumars

从服务器上获得网络时间的几种方法 – findumars

从服现役的上通用网络时间的几种方式

1. 用Net Time \\server
2. win32 NT平台 API重大聚会:NetRemoteTOD
3. 运用时间确立或使安全锉刀
在服现役的共享锉刀夹下确立或使安全新锉刀,确立或使安全新锉刀的时间。
4. 运用HTTP同意头,运用服现役的的时间
5. 用telnet,获取循环值
Telnet Server 13
6. 运用数据库
a) Oracle: select sysdate from dual
b) Informix: select current() from systables
c) Sql Server: select getdate()
7. 运用DCOM Server
确立或使安全单独DCOM来获取服现役的时间 Server,在客户机使调动中

—————————————————————

与Internet时间服现役的的自然的同步的

  Windows默许两个Internet时间服现役的:同时你一定要常常运用它。,在我的实例中,这是单独价格稳定的时间同步的耽搁。,能够是由于服现役的外国的,更多的同步的机,服现役的太忙了。
以下IP是中华人民共和国的因特网时间服现役的地址,用它替代服现役的,迅速地同步的时间。同步的成的机遇庞大地增添了。。

你莫如试着用。。

奇纳国民授时提取岩芯:

—————————————————————

承兑使具有特性的IP或服现役的时间。
//方式一:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TTODInfo = record
ElapsedTime: Integer; {数 of seconds since 00:00:00 January 1, 1970}
Milliseconds: Integer; {数 of milliseconds since last system reset}
Hours: Integer; {电流 hour (0-23)}
Minutes: Integer; {电流 minute (0-59)}
Seconds: Integer; {电流 second (0-59)}
Hunds: Integer; {电流 hundredth of a second (0-99)}
TimeZone: Integer; {时间 against GMT in minutes}
{西 of Greenwich gives positive, east negative values}
{有重要性 of -1 means undefined time zone}
Interval: Integer; {钟 tick interval in 高音部万 of a second (0.0001 s)}
Day: Integer; {天 of the month (1-31)}
Month: Integer; {月 of the year (1-12)}
Year: Integer; {year}
Weekday: Integer; {天 of the week (0-6) 0 = Sunday, 1 = Monday etc.}
end;
PTODInfo = ^TTODInfo;
type
TForm1 = 类(平台)
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
1 TForm1;
const
netapi32 = ””;
function NetApiBufferFree(Buffer: 指导者) Integer; stdcall;
function NetRemoteTOD(UNCServerName: PWideChar; Info: 指导者) Integer; stdcall;
function ServerTime(const UNCServer: string; var Stamp: TDateTime): Integer;
implementation
{$R *.dfm}
function NetApiBufferFree; external netapi32 name ”NetApiBufferFree”;
function NetRemoteTOD; external netapi32 name ”NetRemoteTOD”;
function ServerTime(const UNCServer: string; var Stamp: TDateTime): Integer;
var
ServerName: PWideChar;
tod: PTODInfo;
Year, Month, Day, Hour, Min, Sec, MSec: Word;
begin
GetMem(ServerName, (Length(UNCServer) + 1) * SizeOf(WideChar));
try
ServerName := StringToWideChar(UNCServer, ServerName, Length(UNCServer) + 1);
Result := NetRemoteTOD(ServerName, TOD)
if Result = 0 then
begin
try
Year := tod^.Year;
Month := tod^.Month;
Day := tod^.Day;
Hour := tod^.Hours;
Min := tod^.Minutes;
Sec := tod^.Seconds;
MSec := tod^.Hunds * 10;
if tod^.TimeZone = -1 then {限界 timezone}
Stamp := EncodeDate(Year, Month, 天) +
EncodeTime(Hour, Min, Sec, MSec)
else
Stamp := EncodeDate(Year, Month, 天) +
EncodeTime(Hour, Min, Sec, MSec) – (tod^.TimeZone / 1440);
finally
NetApiBufferFree(tod);
end;
end;
finally
FreeMem(ServerName);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
t: TDateTime;
begin
ServerTime(””, t);
label1.Caption := DateTimeToStr(t);
end;
end.

type
TIME_OF_DAY_INFO = record //api 循环的数据格式
tod_elapsedt : DWord;
tod_msecs : DWord;
tod_hours : DWord;
tod_mins : DWord;
tod_secs : DWord;
tod_hunds : DWord;
tod_timezone : LongInt;
tod_tinterval : DWord;
tod_day : DWord;
tod_month : DWord;
tod_year : DWord;
tod_weekday : DWord;
end;
PTIME_OF_DAY_INFO = ^TIME_OF_DAY_INFO;

LPBYTE = ^Byte;
NET_API_STATUS = DWord;
//..
function NetRemoteTOD(HostName: PWideChar; Buffer: LPBYTE): NET_API_STATUS;
stdcall; external ”” name ”NetRemoteTOD”; 布告 下的 NetRemoteTOD api
//..
function GetRemoteTOD(Host: WideString; TODInfo: LPBYTE): Boolean;
begin
Result := (NetRemoteTOD(pWideChar(Host), TODInfo) = 0);
end;

function GetRemoteDateTime(Host: WideString): TDateTime;
var
TOD : PTIME_OF_DAY_INFO;
begin
if NetRemoteTOD(pWideChar(Host), TOD) = 0 then
Result := EncodeDate(TOD^.tod_year, TOD^.tod_month, TOD^.tod_day) +
EncodeTime(TOD^.tod_hours, TOD^.tod_mins, TOD^.tod_secs, TOD^.tod_hunds * 10) – TOD^.tod_timezone / 60 /

24
else
Result := 0;
end;
//
procedure TForm1.Button2Click(Sender: TObject);
var
t: TDatetime;
begin
t:=GetRemoteDateTime(”\\”); // 添加到征服后面 \\, 率先 trust 過
showmessage(formatdatetime(”yyyy/mm/dd 神经网:SS,t));
end;
方式二:
如果服现役的上有ms SQL:

function GetServerDate: TDateTime;
var
aqry: TQuery;
begin
aqry := (无)
try
aqry.DatabaseName := DB
aqry.Close;
aqry.SQL.Clear;
aqry.SQL.Add(”Select GETDATE() DBDate”);
aqry.Open;
Result := aqry.FieldByName(”DBDate”).AsDateTime;
finally
FreeAndNil(aqry);
end;
end;
如果服现役的上有Oracle:

function GetServerDate: TDateTime;
var
aqry: TQuery;
begin
aqry := (无)
try
aqry.DatabaseName := DB
aqry.Close;
aqry.SQL.Clear;
aqry.SQL.Add(”Select SYSDATE DBDate From 双)
aqry.Open;
Result := aqry.FieldByName(”DBDate”).AsDateTime;
finally
FreeAndNil(aqry);
end;
end;

充当顾问

————————————————————————————-

北斗七星时间频率交互图像技术有限公司是一家专注于时间频率技术工程适合的开创型职业化技术公司。去北斗七星(Compass)/GPS/GLONASS/Galileo海上交通卫星时间频率技术、时频精细测把持技术、IEEE1588 network precision time synchronization (PTP) technology、时频一致同步的技术,高精度时频打猎发生、保持健康、无漏洞的(无损)软鞭子的深思与本领开拓,并去规定专业的高端时频体系。。

这家公司有充足的的工程体验。、在时间和频率的技术专家和青春middle-a队,TH的时频切除体系的开拓与建筑物、自由卫星原子钟在奇纳的开展代表团、单独戎气象卫星时间频率体系的构造、某军用侦察卫星时频体系的建筑物、总装备部“高精细时间以一定间隔排列测技术”和“高精细频率测把持技术”专项等国民级在发表施政方针工程。公司在时间王国掌握多项国民发明专利。,并成地适合于多条本领线,广为流传地适合于打倒、车载、船载、空气传播的和另一个多种多样的外界。专业时间频率与技术生产能力的技术水平。人们的专业人士队预料着与您互助。,为你规定单独世界级的时间频率体系的receiver 收音机和技术。

北斗七星授时交互图像技术有限公司,包含用户服务程序、总装、海、空中勤务、次货炮国防在发表施政方针单位与奇纳航天知识与Tec、奇纳航天科工批、奇纳楼梯的一段实验深思院、奇纳航空工业控制公司、奇纳电力批公司、奇纳知识院上海瞭望台、奇纳知识院国民授时提取岩芯、奇纳知识院武汉大地测深思所、女朋友的编号、国民气象局、海事局、国民计量院、国民电网、奇纳移动、奇纳联通、中央电视台等国民在发表施政方针部委。适合王国和航空与航天空间、国防戎、电力体系、研究机构、计量与排列、广播与电视、通信量、将存入银行、交通等。本领质量可靠的人。、上进的合格证书,活受罪用户好评。

经过北斗七星时间频率技术的本领开拓时间和频率、台式、背着背包徒步旅行、帮助式、多种本领典型。次要本领类别有GPS时间体系。、北斗七星
授时体系、gps时间码发生器(GPS时间码)、北斗七星码发生器(北斗七星授时码)、GPS时间卡(GPS时间卡/时间码卡)、北斗七星时间卡、PCI/CPCI时码卡、IRIG-B码解码卡、NTP网络时间服现役的、IEEE1588 (PTP)精细钟、gps北斗七星同步的钟、GPS铷原子钟(GPS铷原子频率基准)、北斗七星铷原子钟(北斗七星铷原子频标)、频率分派扩大的人、频率基准无漏洞的切换器、脉冲分派器、IRIG-B时间码分派器、高精度时间以一定间隔排列换算、高精度波长计、比得上器等。。

北斗七星新时代频率交互图像技术有限公司。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Message *
Name*
Email *