字符串.格式 - 时间自水平加载在 12:34 SS:MS.



我希望将 timeSinceLevelLoad 格式化为 00:00 格式,以便玩家可以看到他们一直在玩多少秒和毫秒。

我正在尝试通过使用字符串来做到这一点。格式化并保存到我的时间文本变量,如下所示。

void Update () {
timeText.text = string.Format("{0:00}", Time.timeSinceLevelLoad);
}

目前,我只得到 00:以秒为单位计数,但尝试了"{0:00}:{0:.00}"和其他一些变体。

有谁知道一种方法可以在一行中干净利落地做到这一点?

试试这个...

void Update () {
timeText.text = string
.Format("{0:00.00}", Time.timeSinceLevelLoad)
.Replace(
CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator, 
":");
}

编辑:如对该问题的评论中所述。 提问者所追求的所需格式是非标准的。 没有区域性使用 : 字符来分隔秒和毫秒。 此字符更常用于分隔分钟和秒或小时和分钟。因此,您需要使用 replace 函数将标准小数分隔符替换为非标准分隔符。

您可以使用自定义时间跨度格式字符串,如下所示:

TimeSpan.FromSeconds(Time.timeSinceLevelLoad).ToString(@"%s.ff");

最新更新