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

Rom*_*ndo 9 c# timespan

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

我的代码在这里:

TimeSpan lateaftertime = new TimeSpan();
lateaftertime =  lateafter - Convert.ToDateTime(intime) ;
Run Code Online (Sandbox Code Playgroud)

它返回值 00:10:00

但我想要以下输出:00:10只有非秒字段:00.

V4V*_*tta 21

那么你可以简单地做

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

编辑

得到它正确格式化使用

string.Format("{0:00}:{1:00}", ts.Hours,ts.Minutes) // it should display 02:05
Run Code Online (Sandbox Code Playgroud)


Hei*_*nzi 12

请注意,a TimeSpan 没有格式.它存储在一些完全不相似的内部表示中00:10:00.

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

要修改转换为字符串,你可以使用String.Format,如建议在V4Vendetta的答案,或者您可以使用自定义格式字符串TimeSpan.ToString(可与.NET 4):

string formattedTimespan = ts.ToString("hh\\:mm");
Run Code Online (Sandbox Code Playgroud)


Pab*_*ash 11

TimeSpan newTimeSpan = new TimeSpan(timeSpan.Hours, timeSpan.Minutes, 0);
Run Code Online (Sandbox Code Playgroud)