零填充TimeSpan.ToString(字符串)

本文关键字:字符串 ToString 填充 TimeSpan | 更新日期: 2023-09-27 18:26:34

我想从TimeSpan对象创建一个字符串,其格式为:"hhhh:mm:ss.ff"。

当我使用以下内容时,我会得到一个FormatException。。。

private const string MAX_TIME_ALLOWED_FORMAT = @"hhhh':mm':ss.ff";
String myDurationSring = TimeSpan.FromSeconds(myDurationInSeconds).ToString(MAX_TIME_ALLOWED_FORMAT) : string.Empty;

我的格式字符串需要一些工作吗?或者有更好的方法吗?

零填充TimeSpan.ToString(字符串)

TimeSpan.ToString不支持显示总小时数的自定义格式字符串-它只能显示小时部分,最大值为23。

我会使用一个格式字符串,它包含TimeSpan:的各个组件

String myDurationSring =
    string.Format("{0:0000}:{1:00}:{2:00}.{3:00}",
                  (int)(ts.TotalHours), 
                  ts.Minutes, 
                  ts.Seconds, 
                  ts.Milliseconds/10.0);

我认为最简单、最干净的方法是使用插值:

var myDurationSring = $"{ts.Hours:0000}:{ts.Minutes:00}:{ts:Seconds:00}.{ts.Milliseconds/10.0}";

尝试:

"hhhh:mm:ss.ff"

作为格式字符串。我想你是想逃离上校。你不需要。如果你需要输出中的冒号,请尝试:

"hhhh'':mm'':ss.ff"