3

我有一堆数字,它们类似于1.567or 22.654220.123我想将它们转换为时间00:00:00.000 (hours/Minutes/Seconds.Miliseconds)

关于如何有效地实现这一目标的任何建议?没有太多的摆弄。

在可能的情况下,我需要一个 vb.net 解决方案。

我在这里先向您的帮助表示感谢。

4

1 回答 1

6

使用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)
于 2013-03-26T10:56:59.793 回答