将十进制小时转换为时间?

6

我在数据库中有一个小时字段,如1.4、1.5、1.7,需要将其转换回HH:MM。最简单的方法是什么?


2
1.4 应该代表什么? - Josh Stodola
4个回答

20

TimeSpan.FromHours:

double value;
TimeSpan t = TimeSpan.FromHours(value);

例子:

Console.WriteLine(TimeSpan.FromHours(1.4)); // prints 01:24:00 to the console.

1

HH(小时)数字是小数点前的数字。

要获取分钟数,请减去整数部分,这样您只有小数点后的数量,然后将该分数乘以60即可得到分钟数。


0

我发现被采纳的答案中的TimeSpan方法适用于小于24小时(1天)的情况。

DateTime方法适合处理大于24小时的时间,而不涉及天数(也没有前导0):

    public string DecHrsToHHMM(double dHours)
    {
        DateTime dTime = new DateTime().AddHours(dHours);
        return dTime.ToString("H:mm");
    }

-2
Convert.ToDateTime(float)

我没有标记这个,但是它会抛出一个InvalidCastException异常。 - Patrick McDonald

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接