我有这段代码可以很好地将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?
答案 0 :(得分:1)
示例:
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;
}
检查长度是一种非常简单的方法。要更准确地识别格式,可以使用正则表达式。