一、准备工作

1、vb6.0企业版

精装版功能不全,企业版可能会由于兼容性问题安装失败,不过只要开始菜单出现了VB6.0中文版就算安装成功。

2、用于获取时间的网络连接

这里可选择的有很多,实测下来找到一个响应最快的网址:

原网站为: ,以供参考。

二、代码实现

1、引入部件

导入部件 Microsoft Internet Transfer Control 6.0

创建一个 Inet 对象(在窗体上拖拽一个 Inet 部件就行)

如果没有找到该部件,说明VB6.0没有安装专业版

2、代码实现

由于网站返回的数据不是我们想要的格式,需要对其进行格式处理,截至编写这篇文章时,上述网站返回的信息如下:

t0=new Date().getTime(); nyear=2025; nmonth=3; nday=8; nwday=6; nhrs=20; nmin=19; nsec=23;

可以看出依次显示的信息是:年、月、日、星期、时、分、秒

我们可以编写如下函数,返回当前时间(当前代码格式化后的格式为:2025年3月8日 20:19:23,我这里舍弃了周六这一信息,可以根据需求更改代码自定义格式):

Public Function GetTimeFromNet() As String    '从网络获取时间
    Dim strURL As String
    strURL = ""
    Dim strData As String
    strData = Inet1.OpenURL(strURL)
    Dim Time_1() As String
    Dim Time_2(6) As String
    Dim strTime() As String
    strData = Replace(strData, ";", "")
    Time_1() = Split(strData, vbCrLf)
    For i = 0 To 6
        strTime() = Split(Time_1(i + 1), "=")
        Time_2(i) = strTime(1)
    Next i
    Dim Time_Now As String
    Time_Now = Time_2(0) & "年" & Time_2(1) & "月" & Time_2(2) & "日 " & _
        Format(Time_2(4), "00") & ":" & Format(Time_2(5), "00") & ":" & Format(Time_2(6), "00")
    GetTimeFromNet = Time_Now
End Function

再拖拽一个 Timer 控件,设置更新频率为1毫秒(如果太小影响性能可适当增大)

再绘制一个 Label 控件,用来打印时间

编写 Timer 控件代码,定义一个变量记录当前时间,完整代码如下:

Dim time As String
Private Function GetTimeFromNet() As String    '从网络获取时间
    Dim strURL As String
    strURL = ""
    Dim strData As String
    strData = Inet1.OpenURL(strURL)
    Dim Time_1() As String
    Dim Time_2(6) As String
    Dim strTime() As String
    strData = Replace(strData, ";", "")
    Time_1() = Split(strData, vbCrLf)
    For i = 0 To 6
        strTime() = Split(Time_1(i + 1), "=")
        Time_2(i) = strTime(1)
    Next i
    Dim Time_Now As String
    Time_Now = Time_2(0) & "年" & Time_2(1) & "月" & Time_2(2) & "日 " & _
        Format(Time_2(4), "00") & ":" & Format(Time_2(5), "00") & ":" & Format(Time_2(6), "00")
    GetTimeFromNet = Time_Now
End Function
Private Sub Timer1_Timer()
    time = GetTimeFromNet()
    If Label1.Caption <> time Then Label1.Caption = time
End Sub

3、运行效果

运行界面如下:

考虑到直接读取计算机时间有不准确的可能,从网络上获取北京时间的时效性更强。