我有一堆我得到的数字,如1.567
或22.654
或220.123
,我想将它们转换为00:00:00.000 (hours/Minutes/Seconds.Miliseconds)
关于如何有效地实现这一目标的任何建议?没有太多的摆弄。
我需要一个vb.net解决方案。
提前感谢您的帮助。
答案 0 :(得分:5)
使用DateTime.AddHours
方法。它需要double
个值作为参数:
Dim d as DateTime = (new DateTime()).AddHours(1.567)
结果为{0001-01-01 01:34:01}
然后,您可以使用DateTime.ToString()
方法获得所需格式的时间:
Dim s as String = d.ToString("HH:mm:ss.fff")
结果为"01:34:01.200"
它适用于从0
到23.99
<强>更新强>
如果您的输入值代表小时数且可能大于24小时,则可以使用TimeSpan
代替DateTime
:
Dim d as TimeSpan = TimeSpan.FromHours(220.123)
Dim s As String = string.Format("{0}:{1}:{2}.{3}", CInt(d.TotalHours), d.Minutes, d.Seconds, d.Milliseconds)