Что лучший способ состоит в том, чтобы преобразовать секунды во время (Hour:Minutes:Seconds:Milliseconds)?

279
задан John Saunders 12 July 2012 в 18:38
поделиться

6 ответов

Для .Net < = 4.0 Использование класс TimeSpan.

TimeSpan t = TimeSpan.FromSeconds( secs );

string answer = string.Format("{0:D2}h:{1:D2}m:{2:D2}s:{3:D3}ms", 
                t.Hours, 
                t.Minutes, 
                t.Seconds, 
                t.Milliseconds);

(Как отмечено Inder Kumar Rathore) Для .NET> 4.0 можно использовать

TimeSpan time = TimeSpan.FromSeconds(seconds);

//here backslash is must to tell that colon is
//not the part of format, it just a character that we want in output
string str = time .ToString(@"hh\:mm\:ss\:fff");

(От Nick Molyneux), Гарантируют, что секунды [меньше чем 112] для предотвращения исключения.

541
ответ дан Curtis Shipley 23 November 2019 в 02:01
поделиться

Если Вы знаете, что у Вас есть много секунд, можно создать стоимость TimeSpan путем вызова TimeSpan. FromSeconds:

 TimeSpan ts = TimeSpan.FromSeconds(80);

можно тогда получить количество дней, часы, минуты или секунды. Или используйте одну из перегрузок ToString для вывода его любым способом, который Вы любите.

21
ответ дан Jim Mischel 23 November 2019 в 02:01
поделиться
10
ответ дан toad 23 November 2019 в 02:01
поделиться

Конструктор TimeSpan позволяет Вам передать в секундах. Просто объявите переменную типа количество TimeSpan секунд. Исключая:

TimeSpan span = new TimeSpan(0, 0, 500);
span.ToString();
8
ответ дан Jim Petkus 23 November 2019 в 02:01
поделиться

Я предложил бы, чтобы Вы использовали TimeSpan класс для этого.

public static void Main(string[] args)
{
    TimeSpan t = TimeSpan.FromSeconds(80);
    Console.WriteLine(t.ToString());

    t = TimeSpan.FromSeconds(868693412);
    Console.WriteLine(t.ToString());
}

Выводы:

00:01:20
10054.07:43:32
4
ответ дан Oliver Friedrich 23 November 2019 в 02:01
поделиться

В VB.NET, но это - то же в C#:

Dim x As New TimeSpan(0, 0, 80)
debug.print(x.ToString())
' Will print 00:01:20
4
ответ дан Nathan Tuggy 23 November 2019 в 02:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: