【问题标题】:Convert MM:SS string to HH:MM:SS in C#在 C# 中将 MM:SS 字符串转换为 HH:MM:SS
【发布时间】:2015-07-06 12:15:21
【问题描述】:

我有这段代码可以很好地将 HH:MM:SS 转换为秒作为整数。

  for (int i = 0; i < nrdaily.Rows.Count; i++)
  {
      double NRT = TimeSpan.Parse(nrdaily.Rows[i][3].ToString()).TotalSeconds;
      nrdaily.Rows[i][3] = NRT;
  }

但是,我正在处理一个 CSV 文件,其中一个字段有许多以 MM:SS 格式存储的值,TotalSeconds 似乎将其误解为 HH:MM 并给出错误的结果。

如何检查字符串是否为 HH:MM:SS 格式,如果是 MM:SS 则将其转换为 HH:MM:SS?

【问题讨论】:

    标签: c# datetime time


    【解决方案1】:

    您可以检查字符串长度以识别格式。

    for (int i = 0; i < nrdaily.Rows.Count; i++)
    {
         string time = nrdaily.Rows[i][3].ToString();
         if (time.Length == 5)
              time = "00:" + time;
         double NRT = TimeSpan.Parse(time).TotalSeconds;
         nrdaily.Rows[i][3] = NRT;
    }
    

    检查长度是一种非常简单的方法。为了更准确地识别格式,您可以使用正则表达式。

    【讨论】:

      【解决方案2】:

      使用TimeSpan.ParseExact

      例子:

      var testString = "01:05";
      TimeSpan.ParseExact(testString, "mm\\:ss", CultureInfo.InvariantCulture).TotalSeconds; 
      //TotalSeconds will be 65
      

      【讨论】:

        猜你喜欢
        • 2022-09-29
        • 2019-08-07
        • 1970-01-01
        • 2012-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多