在MM中将MM:SS字符串转换为HH:MM:SS

时间:2015-04-27 21:10:31

标签: c# datetime time

我有这段代码可以很好地将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?

2 个答案:

答案 0 :(得分:1)

使用TimeSpan.ParseExact

示例:

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

答案 1 :(得分:0)

您可以检查初学者的字符串长度以确定格式。

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;
}

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