如何将timespan转换为带格式的字符串

时间:2014-12-12 05:33:14

标签: c#

我有时间" 1.00:00:11"我想将其转换为字符串: " 24:00" 。作为代码

DateTime date1 = Convert.ToDateTime("2014/12/12 14:37:56");
DateTime date2 = Convert.ToDateTime(("2014/12/13 14:37:59");
string minutes = (date2.Subtract(date1).TotalMinutes).ToString();
string result = TimeSpan.FromMinutes(Convert.ToDouble(minutes)).ToString();

我得到了结果=" 1.00:00:11"。 如何将此结果更改为(HH:mm)。

当我转换字符串时,我遇到了问题" 24:00"到日期时间。 问题是: 日历System.Globalization.GregorianCalendar中不支持字符串表示的DateTime。

是否有某些功能?

1 个答案:

答案 0 :(得分:0)

要获得hh:mm:ss格式的时间,你可以做类似的事情,

    DateTime date1 = Convert.ToDateTime("2014/12/12 14:37:56");
    DateTime date2 = Convert.ToDateTime(("2014/12/13 14:37:59"));
    double totalSec = date2.Subtract(date1).TotalSeconds;
    string result = string.Format("{0:00}:{1:00}:{2:00}", totalSec / 3600, (totalSec / 60) % 60, totalSec % 60);

这会产生hh:mm:ss格式的时间量,它不是hh:mm:ss是任何特定日期的一部分。 所以你不能直接将它转换为datetime类型。对于日期时间类型,最大值为hh:mm:ss仅为23:59:59。

要获得hh:mm:ss的时间跨度,你可以做到这一点,

    string result = date2.Subtract(date1).ToString("hh\\:mm\\:ss");

希望这会有所帮助......