格式化时间(HH:MM:SS)

时间:2011-08-17 08:42:00

标签: vb.net string date time formatting

我在数小时,分钟和秒内从Numeric Ups和Downs中获取值。

问题是,例如,如果时间例如是上午9点15分,它将显示为9:15:0

我想要做的是格式化它们,这样如果任何值(小时,分钟或秒)小于10,它将在数字前加0,这样数字显示为09:15:00。 / p>

我尝试的是这个,但它不起作用:

Sub BtnSetClick(sender As Object, e As EventArgs)

        lbl8.Visible = True

        Dim nmTime As String = nmHour.Value.ToString + nmMin.Value.ToString + nmSec.Value.ToString



        lblST.Text.Format(nmTime.ToString, "HH:MM:SS")


        lblST.Text = (nmTime)

        lblST.Visible = True

    End Sub

3 个答案:

答案 0 :(得分:10)

你似乎通过将所有内容多次转换为字符串来做一点落后,尝试这样的事情:

Dim ts As new TimeSpan(CInt(nmHour.Value), CInt(nmMin.Value), CInt(nmSec.Value))
lblST.Text = ts.ToString("HH:MM:SS")

TimeSpan.ToString的文档很有用。

编辑:更新了代码以反映Tim关于数据类型的评论。

答案 1 :(得分:2)

试试这个:

Sub BtnSetClick(ByVal sender As Object, ByVal e As EventArgs)          

    lbl8.Visible = True          
    Dim nmTime As String = nmHour.Value.ToString().PadLeft(2, '0') + nmMin.Value.ToString().PadLeft(2, '0') + nmSec.Value.ToString().PadLeft(2, '0')            

    lblST.Text = nmTime          
    lblST.Visible = True      
End Sub 

答案 2 :(得分:1)

尝试使用TimeSpan对象,它应该为您完成所有艰苦的工作!

Dim nmTime As New TimeSpan(nmHour.Value, nmMin.Value, nmSec.Value)

lblST.Text = nmTime.ToString
lblST.Visible = True