【发布时间】:2013-03-16 03:23:23
【问题描述】:
我有一堆数字,例如 1.567 或 22.654 或 220.123 我想将它们转换为 00:00:00.000 (hours/Minutes/Seconds.Miliseconds) 中的时间
关于如何有效实现这一点的任何建议?没有太多的摆弄。
如果可能,我需要一个 vb.net 解决方案。
提前感谢您的帮助。
【问题讨论】:
我有一堆数字,例如 1.567 或 22.654 或 220.123 我想将它们转换为 00:00:00.000 (hours/Minutes/Seconds.Miliseconds) 中的时间
关于如何有效实现这一点的任何建议?没有太多的摆弄。
如果可能,我需要一个 vb.net 解决方案。
提前感谢您的帮助。
【问题讨论】:
使用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)
【讨论】: