c# – 将字符串转换为时间并再次返回
发布时间:2020-12-15 19:32:51 所属栏目:百科 来源:网络整理
导读:我将这种格式’00 .000’的小时值转换为小时和分钟格式.所以’02 .500’将是’02:30′,我也必须反过来这样做. 我建立了一个测试,看看它是如何工作的, % TimeSpan tspan; TimeSpan tspan2; string TimeString; string TimeString2; string Converted; double
我将这种格式’00 .000’的小时值转换为小时和分钟格式.所以’02 .500’将是’02:30′,我也必须反过来这样做.
我建立了一个测试,看看它是如何工作的, <% 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>"); } } } %> 我遇到的问题是,当我转换为字符串时,我会从转换中释放余数,这会在转换回来时抛出该值. 这是前10秒的输出. 0:00 = 00.000 = 0:00 0:01 = 00.017 = 0:01 0:02 = 00.033 = 0:01 0:03 = 00.050 = 0:03 0:04 = 00.067 = 0:04 0:05 = 00.083 = 0:04 0:06 = 00.100 = 0:06 0:07 = 00.117 = 0:07 0:08 = 00.133 = 0:07 0:09 = 00.150 = 0:09 0:10 = 00.167 = 0:10 你可以看到我开始的并不总是我最终的结果. 如何正确地将时间值字符串“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.Minutes); 但我得到Converted =“02.033”和TimeString2 =“2:01”.它应该等于“2:02”.当我强迫它“00.000”时,我想我正在失去剩下的余数. 解决方法
你为什么不只使用DateTime.Parse?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |