String.Format 和时间跨度问题
String.Format and TimeSpan issues
我刚开始使用 Unity,我不知道如何在我的代码设计器 VS 中正确调试脚本。
我在脚本中有这段代码,但无法提供我想要的格式:
private string GetTimeElapsedAsString()
{
TimeSpan timeElapsed = DateTime.Now.Subtract(_startTime);
return string.Format("{0:mm} {1:ss} {2:ff}", timeElapsed.TotalMinutes, timeElapsed.TotalSeconds, timeElapsed.TotalMilliseconds);
}
我想要的是这样的:给定格式的“00:07:32”:"mm:ss:ff"
我只想要最简单的方法来截断每个时间单位的除 2 位以外的所有数字。
有什么想法吗?
问候 Kalrin。
编辑(进行中):
我修改了代码。现在看起来像这样:
private string GetTimeElapsedAsString()
{
TimeSpan timeElapsed = DateTime.Now.Subtract(_startTime);
return string.Format("{0:00}:{1:00}:{2:00}", timeElapsed.Minutes, timeElapsed.Seconds, timeElapsed.Milliseconds);
}
当我去测试我的游戏时,我仍然得到 3 位数字显示毫秒 - 为什么会发生这种情况??
看起来像这样:
UI Text component in Unity
编辑:
我找到了上一个问题的解决方案:
return string.Format("{0:00}:{1:00}:{2}", timeElapsed.Minutes, timeElapsed.Seconds, timeElapsed.Milliseconds.ToString().Substring(0,2));
我只需要创建一个仅包含整数前 2 位数字的 .Substring(0,2)。
感谢那些试图提供帮助的人!
好看!!:
Working Example
干杯!
您正在将三个数字传递给 Format()
。
数字无法识别 ``m,
s, or
f`,所以它们只打印字面字符。
您希望格式字符串 00
将每个数字填充为两位数。
还有,你其实并不想要.Total*
;请参阅文档。
我建议你试试
ts.ToString("mm:ss:ff");
我刚开始使用 Unity,我不知道如何在我的代码设计器 VS 中正确调试脚本。
我在脚本中有这段代码,但无法提供我想要的格式:
private string GetTimeElapsedAsString()
{
TimeSpan timeElapsed = DateTime.Now.Subtract(_startTime);
return string.Format("{0:mm} {1:ss} {2:ff}", timeElapsed.TotalMinutes, timeElapsed.TotalSeconds, timeElapsed.TotalMilliseconds);
}
我想要的是这样的:给定格式的“00:07:32”:"mm:ss:ff"
我只想要最简单的方法来截断每个时间单位的除 2 位以外的所有数字。 有什么想法吗?
问候 Kalrin。
编辑(进行中): 我修改了代码。现在看起来像这样:
private string GetTimeElapsedAsString()
{
TimeSpan timeElapsed = DateTime.Now.Subtract(_startTime);
return string.Format("{0:00}:{1:00}:{2:00}", timeElapsed.Minutes, timeElapsed.Seconds, timeElapsed.Milliseconds);
}
当我去测试我的游戏时,我仍然得到 3 位数字显示毫秒 - 为什么会发生这种情况??
看起来像这样: UI Text component in Unity
编辑: 我找到了上一个问题的解决方案:
return string.Format("{0:00}:{1:00}:{2}", timeElapsed.Minutes, timeElapsed.Seconds, timeElapsed.Milliseconds.ToString().Substring(0,2));
我只需要创建一个仅包含整数前 2 位数字的 .Substring(0,2)。
感谢那些试图提供帮助的人! 好看!!:
Working Example
干杯!
您正在将三个数字传递给 Format()
。
数字无法识别 ``m,
s, or
f`,所以它们只打印字面字符。
您希望格式字符串 00
将每个数字填充为两位数。
还有,你其实并不想要.Total*
;请参阅文档。
我建议你试试
ts.ToString("mm:ss:ff");