【问题标题】:Formatting TimeSpans格式化时间跨度
【发布时间】:2014-06-20 13:29:20
【问题描述】:

我正在尝试使用以下代码行格式化TimeSpan

.ToString("[d.]hh:mm:ss")

它会抛出 FormatException,但是当我删除 :[]. 时,异常消失了。我也不能包含空格。有谁知道为什么会这样?在this msdn 页面上,它明确指出您可以包含这些字符。我正在使用 .Net 框架 4.5.2 顺便说一句。

谢谢。

【问题讨论】:

  • 这些字符必须是escaped。顺便说一句,你真的想要d. 周围的方括号还是它们只是从 MSDN 复制粘贴格式字符串的结果?
  • 我认为[] 意味着如果没有显示d 元素,它们内部的任何内容都不会呈现;我不想要一个搁浅的.。 MSDN 上没有关于转义的内容,而且我尝试在字符串前面添加@,但它仍然不起作用。
  • @TheGateKeeper 这不是转义字符的方式,而是字符串文字。
  • 我以为它会自动转义字符串中的所有字符。

标签: c# exception timespan formatexception


【解决方案1】:
TimeSpan ts = new TimeSpan(5, 10, 44);
string test = string.Format("{0:dd\\:hh\\:mm\\:ss\\.ffff}", ts);

【讨论】:

    【解决方案2】:

    您需要转义文字字符。这很尴尬,但这是你需要的。

    TimeSpan ts = new TimeSpan(1, 2, 3, 4, 555);
    
    string output = ts.ToString("d\\.hh\\:mm\\:ss");
    

    Docs here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-11
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      • 2012-06-16
      • 1970-01-01
      相关资源
      最近更新 更多