使用c#从时间跨度中删除秒数

时间:2012-01-19 05:00:49

标签: c# timespan

我想使用c#

从时间跨度中删除秒数

我的代码在这里:

TimeSpan lateaftertime = new TimeSpan();
lateaftertime =  lateafter - Convert.ToDateTime(intime) ;

返回值00:10:00

但我希望以下输出:00:10只有秒字段:00

4 个答案:

答案 0 :(得分:19)

嗯,你可以简单地做为

string.Format("{0}:{1}", ts.Hours,ts.Minutes) // it would display 2:5

修改

使用

来正确格式化
string.Format("{0:00}:{1:00}", ts.Hours,ts.Minutes) // it should display 02:05

答案 1 :(得分:9)

请注意,TimeSpan 没有格式。它存储在一些内部表示中,根本不像00:10:00

通常格式hh:mm:ss仅在TimeSpan显式或隐式转换为String时生成。因此,转换是您需要做某事的地方。您问题中的代码示例“太早” - 此时,TimeSpan仍为TimeSpan类型。

要修改转换为String,您可以按照V4Vendetta的回答中的建议使用String.Format,也可以使用custom format string作为TimeSpan.ToString(适用于.NET 4):

string formattedTimespan = ts.ToString("hh\\:mm");

答案 2 :(得分:9)

TimeSpan newTimeSpan = new TimeSpan(timeSpan.Hours, timeSpan.Minutes, 0);

答案 3 :(得分:0)

由于时间跨度字符串表示形式可能会超过小时和分钟,因此仅删除秒而没有其他内容的最可靠的代码将是这样的:

var text = TimeSpan.FromDays(100).ToString(); // "100.00:00:00"
var index = text.LastIndexOf(':');
text = text.Substring(0, index); // "100.00:00"