使用TimerTick的VB.Net经过时间-时间格式

时间:2018-12-13 06:48:49

标签: vb.net timer elapsedtime

我创建了一个与计算机时间同步的实时经过时钟,并显示在标签中。

现在,我的疑问是如何以“ hh:mm:ss”格式在标签中显示时钟。

    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles Me.Load
        ElapseStartTime = DateTime.Now
        Timer1.Enabled = True
        Timer1.Interval = 1000
        Timer1.Start()
    End Sub

    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        Dim ElapsedTime = DateTime.Now.Subtract(ElapseStartTime)
        LB_Timer.Text = String.Format("{0} : {1} : {2}", ElapsedTime.Hours, ElapsedTime.Minutes, ElapsedTime.Seconds)
    End Sub

谢谢!

2 个答案:

答案 0 :(得分:1)

由于DateTime.Subtract返回了TimeSpan结构,因此可以使用TimeSpan.ToString([Format])方法来格式化输出字符串:

Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    LB_Timer.Text = Date.Now.Subtract(ElapseStartTime).ToString("hh\:mm\:ss")
End Sub

定位.Net Framework < FW 4.0时,请使用无参数,对文化不敏感的TimeSpan.ToString()方法。

 LB_Timer.Text = Date.Now.Subtract(ElapseStartTime).ToString().Substring(0, 8)

来自文档

  

.NET Framework中添加了对格式化TimeSpan值的支持。   4.但是,ToString()方法重载仍然对区域性不敏感。它的行为与以前相同   .NET Framework版本。

答案 1 :(得分:0)

我发现这可以帮助您! {0: d2 }

LB_Timer.Text = String.Format("{0:d2}:{1:d2}:{2:d2}", ElapsedTime.Hours, ElapsedTime.Minutes, ElapsedTime.Seconds)