356 Stimmen

Wie kann ich Sekunden in (Stunde:Minute:Sekunde:Millisekunde) Zeit umwandeln?

Wie kann ich Sekunden in (Stunde:Minute:Sekunde:Millisekunde) Zeit konvertieren?

Angenommen, ich habe 80 Sekunden; gibt es spezialisierte Klassen/Techniken in .NET, die es mir ermöglichen, diese 80 Sekunden in das Format (00h:00m:00s:00ms) wie Convert.ToDateTime oder etwas Ähnliches umzuwandeln?

0voto

unos baghaii Punkte 2189

Um die Gesamtsekunden zu erhalten

var i = TimeSpan.FromTicks(startDate.Ticks).TotalSeconds;

und um das Datum und die Zeit aus Sekunden zu erhalten

var thatDateTime = new DateTime().AddSeconds(i)

0voto

ATUL SHARMA Punkte 55

Dies wird im Format hh:mm:ss zurückgegeben

 public static string ConvertTime(long secs)
    {
        TimeSpan ts = TimeSpan.FromSeconds(secs);
        string displayTime = $"{ts.Hours}:{ts.Minutes}:{ts.Seconds}";
        return displayTime;
    }

0 Stimmen

Du must this nicht getestet haben. ConvertTime(80) gibt 0:1:20 zurück und ConvertTime(61) gibt 0:1:1 zurück, beide im Format h:m:s. Die Verwendung von String-Interpolation führt auch zu längeren Codezeilen als ToString(), wie es in anderen Antworten verwendet wird, und macht es auch schwerer, die Länge der formatierten Zeichenkette zu visualisieren.

-1voto

Moh Rezaee Punkte 1
private string ConvertTime(double miliSeconds)
{
    var timeSpan = TimeSpan.FromMilliseconds(totalMiliSeconds);
    // Konvertiert die Gesamtmillisekunden in das menschenlesbare Zeitformat
    return timeSpan.ToString(@"hh\:mm\:ss\:fff");
}

//Test

    [TestCase(1002, "00:00:01:002")]
    [TestCase(700011, "00:11:40:011")]
    [TestCase(113879834, "07:37:59:834")]
    public void ConvertTime_ResturnsCorrectString(double totalMiliSeconds, string expectedMessage)
    {
        // Arrange
        var obj = new Class();;

        // Act
        var resultMessage = obj.ConvertTime(totalMiliSeconds);

        // Assert
        Assert.AreEqual(expectedMessage, resultMessage);
    }

3 Stimmen

1. Der OP hat um die Umrechnung von Sekunden, nicht Millisekunden gebeten. 2. Wie ist deine Antwort besser als die aktuell angenommene Antwort?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X