c# - 如何在 .NET 4.0 之前将 TimeSpan 格式化为字符串

标签 c# .net-3.5 tostring timespan string.format

我正在使用 .NET 3.5 在 C# 中进行编译,并尝试将 TimeSpan 转换为字符串并设置字符串格式。我想用

myString = myTimeSpan.ToString("c");

但是 TimeSpan.ToString 方法直到 .NET 4.0 才将格式字符串作为参数,而我使用的是 .NET 3.5。

那么您如何将 TimeSpan 格式化为字符串?我的最终目标是以 hh:mm:ss 格式显示 TimeSpan,但目前正在接收 hh:mm:ss:fffffff

我试过用

myString = string.Format("{0:hh:mm:ss}", myTimeSpan);

但 string.Format 仅格式化我的 DateTime 并且在尝试格式化 TimeSpan 时传递不同的格式字符串不起作用。

最佳答案

一种方法是:

TimeSpan ts = DateTime.Now - DateTime.Now.AddHours(-10);
Console.WriteLine(string.Format("{0:00}:{1:00}:{2:00}", ts.TotalHours, ts.Minutes, ts.Seconds));

结果会是这样的:

09:59:59

编辑:

或者你可以试试:

TimeSpan ts = DateTime.Now - DateTime.Now.AddHours(-10);
DateTime mydate = new DateTime(ts.Ticks);
Console.WriteLine(mydate.ToString(("hh:mm:ss")));

输出将是:

09:59:59

关于c# - 如何在 .NET 4.0 之前将 TimeSpan 格式化为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11579070/

相关文章:

javascript - 这两种使用 toString() 的方法有什么区别?

javascript - 如何更改Object.prototype.toString?

c# - "Click"我正在构建的应用程序的程序按钮

c# - 如何在特定属性上使用 Distinct 并根据谓词选择要保留的对象?

Java 枚举覆盖 toString()

c# - Encoding.GetEncoding(437).GetString() 错误?

c# - 将字符串转换为 float 据类型

c# - 在 C# 中生成 HTML 电子邮件正文

c# - Microsoft Word if 带有合并字段的语句不起作用

c# - 在 C# 中覆盖事件真的会出错吗?