我在将字符串值转换为TimeSpan时遇到此问题。
值如下:" hrs:mm:ss:ms" 例如:" 00:00:10:03"
将此值转换为TimeSpan时,前导部分会被截断。
代码:
TimeSpan span = new TimeSpan();
TimeSpan.TryParse("00:00:10:03" , out span);
输出: ○时10分03秒
如何仅在Timespan中保留整个值
答案 0 :(得分:0)
TimeSpan.TryParse
无法识别您的格式。而是使用
span = TimeSpan.ParseExact("00:00:10:03", @"hh\:mm\:ss\:ff", System.Globalization.CultureInfo.InvariantCulture);
答案 1 :(得分:0)
你应该在输出中使用span.Ticks
答案 2 :(得分:0)
来自MSDN:
private static void ParseTimeSpan(string intervalStr)
{
// Write the first part of the output line.
Console.Write( "{0,20} ", intervalStr );
// Parse the parameter, and then convert it back to a string.
TimeSpan intervalVal;
if (TimeSpan.TryParse(intervalStr, out intervalVal))
{
string intervalToStr = intervalVal.ToString();
// Pad the end of the TimeSpan string with spaces if it
// does not contain milliseconds.
int pIndex = intervalToStr.IndexOf(':');
pIndex = intervalToStr.IndexOf('.', pIndex);
if (pIndex < 0)
intervalToStr += " ";
Console.WriteLine("{0,21}", intervalToStr);
// Handle failure of TryParse method.
}
else
{
Console.WriteLine("Parse operation failed.");
}
}
称他们为:
ParseTimeSpan("0");
ParseTimeSpan("14");
ParseTimeSpan("1:2:3");
ParseTimeSpan("0:0:0.250");
ParseTimeSpan("10.20:30:40.50");
ParseTimeSpan("99.23:59:59.9999999");
ParseTimeSpan("0023:0059:0059.0099");
ParseTimeSpan("23:0:0");
ParseTimeSpan("24:0:0");
ParseTimeSpan("0:59:0");
ParseTimeSpan("0:60:0");
ParseTimeSpan("0:0:59");
ParseTimeSpan("0:0:60");
ParseTimeSpan("10:");
ParseTimeSpan("10:0");
ParseTimeSpan(":10");
ParseTimeSpan("0:10");
ParseTimeSpan("10:20:");
ParseTimeSpan("10:20:0");
ParseTimeSpan(".123");
ParseTimeSpan("0.12:00");
ParseTimeSpan("10.");
ParseTimeSpan("10.12");
ParseTimeSpan("10.12:00");