2017-03-12 19 views
0

Ich habe einen Codeabschnitt, der den Unix-Timestamp-Wert in eine Standardzeit konvertiert, jedoch Stunden, Minuten und Sekunden zurückgibt. Ich möchte, dass es nur Stunden und Minuten zurückgibt.Sekunden aus DateTime entfernen C#

convertSunriseTime = UnixTimeStampToDateTime(currentSunriseTime).ToString(); 
convertSunsetTime = UnixTimeStampToDateTime(currentSunsetTime).ToString(); 

private static TimeSpan UnixTimeStampToDateTime(long unixTimeStamp) 
{ 
    DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); 
    dtDateTime = dtDateTime.AddSeconds(unixTimeStamp); 
    return dtDateTime.TimeOfDay; 
} 

und der Moment, die Zugriffe auf Variablen convertSunriseTime und convertSunsetTime kommen mit Sekunden zurück.

+0

So möchten Sie die * Präzision * des Ergebnisses Minuten nur eingeschränkt werden? Wie möchten Sie Rundungszeitstempel mit einer nicht ganzzahligen Anzahl von Minuten verarbeiten? – driis

+0

Gut mit Stunden auch. von im Format von HH: mm. Es macht mir nichts aus, dass es ein oder zwei Minuten dauert. – Ross

+1

Ich denke, Sie verwechseln den Wert mit der Formatierung. Wir können Ihnen sagen, wie Sie den Wert auf eine ganze Anzahl von Minuten runden können, aber die TimeSpan hat immer noch die gleiche Präzision. Möchten Sie _ den Wert so formatieren, dass er nur Stunden und Minuten anzeigt? _ – driis

Antwort

1

So mögen Sie Ihren Wert zu formatieren, Stunden und Minuten zu zeigen. Sie können dies tun:

convertSunriseTime = UnixTimeStampToDateTime(currentSunriseTime).ToString("hh\\:mm"); 

Hier wird der Parameter an die Methode ToString() gibt an, dass Sie daran interessiert sind nur die Stunden und Minuten Teile in die resultierenden string zu bekommen. Dies wird custom TimeSpan format string genannt. Es gibt auch eine Reihe von Standard-Einsen: Standard TimeSpan format strings

0

dies kann die Arbeit machen:

private static TimeSpan UnixTimeStampToDateTime(long unixTimeStamp) 
{ 
    DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); 
    dtDateTime = dtDateTime.AddSeconds(unixTimeStamp); 
    dtDateTime = DateTime.FromMinutes((int)dtdateTime.TotalMinutes); 
    return dtDateTime.TimeOfDay; 
} 
0
Can you try this way

convertSunriseTime = UnixTimeStampToDateTime(currentSunriseTime).ToString();
convertSunsetTime = UnixTimeStampToDateTime(currentSunsetTime).ToString();

<pre>private static TimeSpan UnixTimeStampToDateTime(long unixTimeStamp) </pre> 
<pre>{</pre> 
     <pre>DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);</pre> 
    <pre>dtDateTime = dtDateTime.AddSeconds(unixTimeStamp);</pre> 
     <pre>return dtDateTime.TimeOfDay;</pre> 
<pre>}</pre>