【问题标题】:FormatException mm:ss [duplicate]FormatException mm:ss [重复]
【发布时间】:2013-11-27 12:10:26
【问题描述】:

我想从格式为“MM:SS”的字符串中提取 TotalSeconds。例如:01:20 我预计 80(秒)

我这样做了,但我得到了一个例外:

TimeSpan.ParseExact(time.ToString(), "mm:ss", System.Globalization.CultureInfo.CurrentCulture).TotalSeconds;

我做错了什么??

谢谢!

【问题讨论】:

  • 是的,我在link找到了解决方法 格式:"mm\\:ss"

标签: c# timespan formatexception


【解决方案1】:

尝试以下操作:

TimeSpan.ParseExact(time.ToString(), "mm\\:ss", System.Globalization.CultureInfo.CurrentCulture).TotalSeconds;

MSDN 上阅读有关 Costum TimeSpan 格式的更多信息

反斜杠作为转义字符。这意味着,在 C# 中,格式字符串必须是 @-quoted,或者 mm:ss 必须用反斜杠分隔。

【讨论】:

  • 是的,谢谢 Marek!
  • @Ziggy 如果有帮助,请将其标记为答案,以便其他人可以看到解决此问题的方法。我们还有什么可以帮助您的吗?
【解决方案2】:

如果timeDateTime,您可以简单地执行类似的操作

TimeSpan ts = new TimeSpan(time.Ticks);
Console.WriteLine(ts.TotalSeconds);

如果您希望它按照您的代码工作,那么请注意ToString() 方法的输出与您提供的字符串模式不匹配。将其格式化为使输出匹配所需的模式,例如,

TimeSpan.ParseExact(time.ToString("mm:ss"), "mm:ss", System.Globalization.CultureInfo.CurrentCulture).TotalSeconds;

【讨论】:

    【解决方案3】:

    根据此处的 TimeSpan 自定义格式指南http://msdn.microsoft.com/en-us/library/ee372287(v=vs.110).aspx

    您必须使用 backslach 对冒号进行某种转义,因此您的格式应如下所示

    TimeSpan.ParseExact(time.ToString(), @"mm\:ss", System.Globalization.CultureInfo.CurrentCulture).TotalSeconds;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-26
      • 1970-01-01
      • 2021-05-08
      • 2021-01-14
      • 1970-01-01
      • 2014-07-26
      • 2012-01-27
      • 1970-01-01
      相关资源
      最近更新 更多