格式化时间值

时间:2013-07-03 14:17:26

标签: .net vb.net winforms timespan

我想将ms值格式化为两位数的“minutes:seconds”值,两位数字的意思是“00:00”,但我得到的是“0:0”。

这是一个例子:

enter image description here

我想显示“02:04”而不是“2:4”

这是我的代码:

Label_TrackPosition.Text = Format_Time(sender.value)

Private Function Format_Time(ByVal MilliSeconds As Int64) As String
    Dim Time As New TimeSpan(TimeSpan.TicksPerMillisecond * MilliSeconds)
    Return String.Format("{0}:{1}", Time.Minutes, Time.Seconds)
End Function
  

更新:

为了解决这个问题,我做到了这一点,但我知道存在一种简单而改进的方法:

Private Function Format_Time(ByVal MilliSeconds As Int64) As String
    Dim Time As New TimeSpan(TimeSpan.TicksPerMillisecond * MilliSeconds)

    Select Case Time.Minutes.ToString.Length
        Case 1
            Select Case Time.Seconds.ToString.Length
                Case 1
                    Return String.Format("0{0}:0{1}", Time.Minutes, Time.Seconds)
                Case 2
                    Return String.Format("0{0}:{1}", Time.Minutes, Time.Seconds)
            End Select
        Case 2
            Select Case Time.Seconds.ToString.Length
                Case 1
                    Return String.Format("{0}:0{1}", Time.Minutes, Time.Seconds)
                Case 2
                    Return String.Format("{0}:{1}", Time.Minutes, Time.Seconds)
            End Select
    End Select

    ' Return String.Format("{0}:{1}", Time.Minutes, Time.Seconds)
End Function

3 个答案:

答案 0 :(得分:2)

如果将String.Format更改为String.Format(“{0:mm \:ss}”,Time),它将以02:04而不是2:4的形式提供结果。

Label_TrackPosition.Text = Format_Time(sender.value)

Private Function Format_Time(ByVal MilliSeconds As Int64) As String
    Dim Time As New TimeSpan(TimeSpan.TicksPerMillisecond * MilliSeconds)
    Return String.Format("{0:mm\:ss}", Time)
End Function

答案 1 :(得分:1)

使用此格式字符串"{0:00}:{1:00}"

答案 2 :(得分:1)

您需要查看http://msdn.microsoft.com/en-us/library/ee372286.aspxhttp://msdn.microsoft.com/en-us/library/ee372287.aspx以获取有关可用格式的帮助。

这表明你可以使用它作为你的整个方法:

Return TimeSpan.FromMilliseconds(MilliSeconds).ToString("mm\:ss")

这是使用静态FromMilliseconds方法,该方法需要double,但您的Int64会隐式转换为该值。

有关该方法的详细信息,请参阅http://msdn.microsoft.com/en-us/library/system.timespan.frommilliseconds.aspx(并从那里链接其他类文档)。