C# 将字符串转换为一次又一次
我正在将此格式“00.000”中的分数小时值转换为小时和分钟格式。所以'02.500'将是'02:30',我也必须反过来做 我做了一个测试来看看它是如何工作的C# 将字符串转换为一次又一次,c#,asp.net,C#,Asp.net,我正在将此格式“00.000”中的分数小时值转换为小时和分钟格式。所以'02.500'将是'02:30',我也必须反过来做 我做了一个测试来看看它是如何工作的 <% TimeSpan tspan; TimeSpan tspan2; string TimeString; string TimeString2; string Converted; double ConvTime; for (int HH = 0; HH
<%
TimeSpan tspan;
TimeSpan tspan2;
string TimeString;
string TimeString2;
string Converted;
double ConvTime;
for (int HH = 0; HH < 24; HH++)
{
for (int M1 = 0; M1 < 6; M1++)
{
for (int M2 = 0; M2 < 10; M2++)
{
TimeString = HH.ToString() + ":" + M1.ToString() + M2.ToString();
// Convert Time String to Fractional Hours
tspan = TimeSpan.Parse(TimeString);
ConvTime = Convert.ToDouble(tspan.TotalHours);
Converted = String.Format("{0:00.000}", ConvTime);
// Convert Fractional Hour String to Time String
tspan2 = TimeSpan.FromHours(Convert.ToDouble(Converted));
TimeString2 = string.Format("{0:D1}:{1:D2}", tspan2.Hours, tspan2.Minutes);
Response.Write(TimeString + " = ");
Response.Write(Converted + " = ");
Response.Write(TimeString2 + "<br>");
}
}
}
%>
正如你所看到的,我开始的并不总是我结束的
如何将时间值字符串“HH:MM”正确转换为小数字符串“00.000”,然后再正确转换回来
谢谢
编辑:
我试过这个
TimeString = "02:02";
Converted = TimeSpan.Parse(TimeString).TotalHours.ToString("00.000");
tspan2 = TimeSpan.FromHours(Convert.ToDouble(Converted));
TimeString2 = string.Format("{0:D1}:{1:D2}", tspan2.Hours, tspan2.Minutes);
但是我被转换为=“02.033”和TimeString2=“2:01”。它应该等于“2:02”。我在想,当我强制将其设置为“00.000”时,我失去了剩余部分。为什么不使用DateTime.Parse?将字符串转换为小时,请使用以下命令:
string time = "1:30";
double hours = TimeSpan.Parse(time).TotalHours; // -> 1.5
double hours = 1.5;
string time = TimeSpan.FromHours(hours).ToString(); // -> "00:01:30"
相反,您可以使用以下方法:
string time = "1:30";
double hours = TimeSpan.Parse(time).TotalHours; // -> 1.5
double hours = 1.5;
string time = TimeSpan.FromHours(hours).ToString(); // -> "00:01:30"