我需要它以时间格式返回

时间:2017-11-02 16:21:59

标签: c# datetime time

我需要它以时间格式EX 0:00:00

返回

方法/函数

        public override DateTime OverallReadingTime()
        {
            return FinishTime.Subtract(StartTime);
        }

我理解时间跨度,但想知道为什么这不起作用

3 个答案:

答案 0 :(得分:3)

编译错误

您的代码无法编译,因为DateTime.Subtract(..)函数返回TimeSpan但您的函数需要DateTime类型。

选项

  • 继续使用被覆盖的功能,并根据mattshu的回答进行调整。
  • 创建一个返回TimeSpan类型的新函数(见下文)。
  • 创建一个返回String类型的新函数(另见下文)。

TimeSpan选项

public TimeSpan OverallReadingTime()
{
    return FinishTime.Subtract(StartTime);
}

字符串选项

public string OverallReadingTime()
{
    return FinishTime.Subtract(StartTime).ToString();
}

答案 1 :(得分:1)

您可以在减去

后更改格式
public override DateTime OverallReadingTime()
{
    return Convert.ToDateTime(FinishTime.Subtract(StartTime).ToString("hh\:mm\:ss"));
}

答案 2 :(得分:0)

您应该提供有关问题的更多详细信息。但是,解决方案是使用覆盖的“ - ” - 运算符。

        DateTime start = DateTime.Now;
        DateTime end = start.AddHours(2);
        Console.WriteLine((end - start));

制作02:00:00

这是您想要的输出?因此,将函数的返回变量更改为字符串return (FinishTime - StartTime).ToString();