首页 > 解决方案 > string.Format - SS:MS 12:34 中的 timeSinceLevelLoad

问题描述

我希望将 timeSinceLevelLoad 格式化为 00:00 的格式,这样玩家就可以看到他们玩了多少秒和毫秒。

我试图通过使用 string.Format 并保存到我的 timeText 变量来做到这一点,如下所示。

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

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

有谁知道在一行中干净地做到这一点的方法?

标签: c#.netunity3d

解决方案


尝试这个...

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

编辑:如对问题的评论所述。提问者想要的格式是非标准的。没有文化使用 : 字符来分隔秒和毫秒。此字符更常用于分隔分钟和秒或小时和分钟。因此,您需要使用替换功能将标准小数分隔符替换为非标准分隔符。


推荐阅读