我想使用c#
从时间跨度中删除秒数我的代码在这里:
TimeSpan lateaftertime = new TimeSpan();
lateaftertime = lateafter - Convert.ToDateTime(intime) ;
返回值00:10:00
但我希望以下输出:00:10
只有秒字段:00
。
答案 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"