如何实现字符串转换的时间跨度?

Inf*_*nd' 9 c# string timespan datetime-format

我试着在这里搜索,但它对我帮助不大..
我想 time_span 转换为字符串,我不想在几天内返回时间跨度......但只有HH:mm:ss.怎么实现呢?

我的示例代码在这里:

              String time_span_par = "06:12:40";
              String time_str = "18:13:59";
              TimeSpan time_span_var = TimeSpan.Parse(time_span_par);
              TimeSpan time_span = TimeSpan.Parse(time_str);

              time_span = time_span.Add(time_span_var);
              string temp = time_span.ToString("HH:mm:ss");
Run Code Online (Sandbox Code Playgroud)

Adr*_*der 17

尝试使用

DateTime d = new DateTime(time_span.Ticks);
string time = d.ToString("HH:mm:ss");
Run Code Online (Sandbox Code Playgroud)

  • @infant程序员,这个也可以是单行,你可以将两个表达式组合成一行:`string time = new DateTime(time_span.Ticks).ToString("HH:mm:ss");` (5认同)

Kel*_*sey 6

这应该工作:

string temp = string.Format("{0}:{1}:{2}",
    time_span.Hours.ToString(), time_span.Minutes.ToString(),
    time_span.Seconds.ToString());
Run Code Online (Sandbox Code Playgroud)

根据评论,如果你想要两位数你可以做:

string temp = string.Format("{0}:{1}:{2}",
    time_span.Hours.ToString("00"), time_span.Minutes.ToString("00"),
    time_span.Seconds.ToString("00"));
Run Code Online (Sandbox Code Playgroud)

编辑:根据吉米的评论,

string temp = string.Format("{0:00}:{1:00}:{2:00}",time_span.Hours, time_span.Minutes, time_span.Seconds);
Run Code Online (Sandbox Code Playgroud)

  • 对于<10部分,这不会给你"1:2:6"之类的东西吗? (2认同)
  • string.Format("{0:00}:{1:00}:{2:00}",time_span.Hours,time_span.Minutes,time_span.Seconds); (2认同)