string.Format - timeSinceLevelLoad в 12:34 СС: МС - PullRequest
0 голосов
/ 06 февраля 2020

I sh, чтобы отформатировать timeSinceLevelLoad в формате 00:00, чтобы игрок мог видеть, сколько секунд и миллисекунд они играют.

Я пытаюсь сделать это с помощью string.Format и сохраняю в мою переменную timeText, как показано ниже.

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

В настоящее время я получаю только 00: подсчет в секундах, но я попытался «{0:00}: {0: .00}» и некоторые другие варианты.

Кто-нибудь знает способ сделать это чисто в одну строку?

Ответы [ 2 ]

1 голос
/ 06 февраля 2020

Попробуйте это ...

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

РЕДАКТИРОВАТЬ: Как указано в комментарии к вопросу. Требуемый формат, который задает вопрос, является нестандартным. Ни одна культура не использует символ: для разделения секунд и миллисекунд. Этот символ чаще используется для разделения минут и секунд или часов и минут. Поэтому вам необходимо использовать функцию замены, чтобы заменить стандартный десятичный разделитель нестандартным разделителем.

0 голосов
/ 06 февраля 2020

Вы можете использовать Пользовательские строки формата TimeSpan , например:

TimeSpan.FromSeconds(Time.timeSinceLevelLoad).ToString(@"%s\.ff");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...