我想将ms值格式化为两位数的“minutes:seconds”值,两位数字的意思是“00:00”,但我得到的是“0:0”。
这是一个例子:
我想显示“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
答案 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.aspx和http://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(并从那里链接其他类文档)。