获取机器时间的问题

liul17 2003-11-14 02:56:01
如何获取准确的机器时间

无论用户如何更改windows右下角的时间 我均可得知准确的时间(不通过获取服务器或其它局域网内机器的时间) 能不能获取网络时间? 除了windows右下角的时间机器内还有其它时间吗?

现在主要是必须允许用户修改windows右下角的时间(局域网内任何机器包括服务器),而程序还要使用准确的时间!!!!!!!
大家帮帮忙!!!!!!!!!!!!
...全文
106 67 打赏 收藏 转发到动态 举报
写回复
用AI写文章
67 条回复
切换为时间正序
请发表友善的回复…
发表回复
mrcd 2004-01-04
  • 打赏
  • 举报
回复
只能用机器码,给我E-MAIL,我发给你!
liuyanghe111 2004-01-04
  • 打赏
  • 举报
回复
如果有一台GPS就好了,可以得到很准确的时间
88391788 2004-01-04
  • 打赏
  • 举报
回复

老大,你好,我在那里下载的制造业ERP系统SE2000 (VB6代码)但是没有WEBgrid.ocx webform.ocx,怎么办呢???
道素 2004-01-04
  • 打赏
  • 举报
回复
刚写完这个例子发现获取的时间和我们的时区不同,原来我选错了授时服务器
你可以使用我们国家的服务器
Winsock1.RemoteHost = "www.time.ac.cn"
得到时间
10:56:41 2004-1-4


在中国的就用这个吧
zlheadof 2004-01-04
  • 打赏
  • 举报
回复
up!
道素 2004-01-04
  • 打赏
  • 举报
回复
Option Explicit

Private Sub Command1_Click()
If Winsock1.State <> sckClosed Then Winsock1.Close
Winsock1.RemoteHost = "time.nist.gov"
Winsock1.RemotePort = 13
Winsock1.LocalPort = 0
Winsock1.Connect
End Sub



Private Sub Winsock1_Close()
If Winsock1.State <> 0 Then
Winsock1.Close
End If
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim temp As String
Dim sTimeArray() As String
Dim currentDate As Date
Dim currentTime As Date
Dim lReturn As Long

temp = String(bytesTotal, " ")
Winsock1.GetData temp, vbString, bytesTotal
End Sub
通过上面简单的步骤就可以得到标准的时钟,比如我写这个测试例子得到的是



53008 04-01-04 02:28:04 00 0 0 447.4 UTC(NIST) *


注意有空白的换行,将时间解析出来就可以
ChrisCai 2004-01-04
  • 打赏
  • 举报
回复
如果不通过网络是没办法的。
道素 2004-01-04
  • 打赏
  • 举报
回复
做法就是连接到互联网的标准时间服务器:
几个服务器列表:
time-a.nist.gov 129.6.15.28 NIST, Gaithersburg, Maryland
time-b.nist.gov 129.6.15.29 NIST, Gaithersburg, Maryland
time-a.timefreq.bldrdoc.gov 132.163.4.101 NIST, Boulder, Colorado
time-b.timefreq.bldrdoc.gov 132.163.4.102 NIST, Boulder, Colorado
time-c.timefreq.bldrdoc.gov 132.163.4.103 NIST, Boulder, Colorado
utcnist.colorado.edu 128.138.140.44 University of Colorado, Boulder
time.nist.gov 192.43.244.18 NCAR, Boulder, Colorado
time-nw.nist.gov 131.107.1.10 Microsoft, Redmond, Washington
nist1.datum.com 209.0.72.7 Datum, San Jose, California
nist1.dc.certifiedtime.com 216.200.93.8 Abovnet, Virginia
nist1.nyc.certifiedtime.com 208.184.49.9 Abovnet, New York City
nist1.sjc.certifiedtime.com 208.185.146.41 Abovnet, San Jose, California

实际上我们很容易取回标准时间
你可以使用winsock控件连接time.nist.gov,我一会给你写个简单的例子
landongfang 2004-01-02
  • 打赏
  • 举报
回复
http://www.shihui.com/networkdept/NTP2000/client2k.htm
landongfang 2004-01-02
  • 打赏
  • 举报
回复
net time
liul17 2004-01-02
  • 打赏
  • 举报
回复

我如何获取网上的标准时间?谢谢!
lxcc 2003-12-31
  • 打赏
  • 举报
回复
总之你找个第三方的机器(此机器是不能被你们内部局域网的用户更改),比如说找个数据库服务器(internet上的,修改的可能性小)、内部局域网不会被操作的机器等等!
lnhsgj 2003-12-31
  • 打赏
  • 举报
回复
http://www.time.ac.cn/ 中国科学院国家授时中心,
在这里可以得到标准的北京时间。不过要用他们的一个时间校准软件。
道素 2003-12-31
  • 打赏
  • 举报
回复
对不起,我又看清要求,如果你可以上网,可以上网获取标准时间
道素 2003-12-31
  • 打赏
  • 举报
回复
试试
GetTickCount api
延时函数,获取Windows启动至被调用时所经过的毫秒数
liul17 2003-12-16
  • 打赏
  • 举报
回复
娌′汉鐭ラ亾濡備綍鑾峰彇internet鏃堕棿鍚楋紵
liul17 2003-12-16
  • 打赏
  • 举报
回复
娌′汉鐭ラ亾濡備綍鑾峰彇internet鏃堕棿鍚楋紵
kimurakenshin 2003-12-08
  • 打赏
  • 举报
回复
试试自己在一开始在还没有改变系统时间的情况下记录下此时的时间,然后自己设置一个系统级的变量把它存储起来,每一次timer加一秒.等于是做一个独立出程序的变量来存储时间.
如果这个变量错了,那就没办法了.不过你可以较一下时.还有就是不应该让用户自己可以改变服务器的时间,那样程序就全乱了.太不正确了.晕.......
liul17 2003-12-08
  • 打赏
  • 举报
回复
那我应该如何做呢?
mmcgzs 2003-12-03
  • 打赏
  • 举报
回复
另外
time="17:00:00"
可以设置当前时间。
加载更多回复(47)

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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