2016-09-09 3 views
0

In Golang, ich versuche, den Unterschied zwischen einem gegebenen time.Time Wert, um herauszufinden, und dem aktuellen time.Time Wert mit time.Sub und meinem Ergebnis sieht wie folgt aus -Golang Time.Sub gibt Stunden, Minuten, Sekunden zurück - wie bekommt man es in Tagen oder Monaten?

4691h42m17.1831189s 

Ist es möglich, es die Anzahl der Tage, um zurückzukehren oder Monate ohne irgendwelche mathematischen Manipulationen an diesem Wert und nur mit dem time Paket?

+1

Nein, die richtige Lösung muss die Differenz im _Context der Zeit_ berechnen. Siehe mögliche Duplikate von [golang time.Since() mit Monaten und Jahren] (http://stackoverflow.com/questions/36530251/golang-time-since-with-months-and-years) – icza

Antwort

2

Nein, das ist nicht möglich. Der Typ Duration, die von time.Sub zurückgegeben wird, auf Stunden begrenzt:

Es gibt keine Definition für Einheiten von Tag oder größere Verwirrung über die Sommerzeit Zonenübergänge zu vermeiden.

+0

Also der einzige Weg ist es es als String analysieren, den Stundenanteil extrahieren und in Tage umwandeln? :( –

+0

@GauravOjha Analysiere es nicht. Dauer ist eigentlich 'int64', benutze Dauer. (Int64) um Nanosekunden zu bekommen. Aber Konvertierung ist nicht trivial. –

+0

Danke! Der Kommentar von @icza ist auch in diesem Zusammenhang hilfreich –

Verwandte Themen