Die standardmäßige time.Duration String-Methode formatiert die Dauer mit dem Hinzufügen von 0s
für Minuten und 0m0s
für Stunden. Gibt es Funktion, die ich verwenden kann, die 5m
statt und 2h
stattdessen 2h0m0s
produzieren ... oder muss ich meine eigene implementieren?golang Zeitdauer auf String 2h statt 2h0m0s
1
A
Antwort
3
in der Standardbibliothek nicht, aber es ist wirklich einfach zu erstellen:
func shortDur(d time.Duration) string {
s := d.String()
if strings.HasSuffix(s, "m0s") {
s = s[:len(s)-2]
}
if strings.HasSuffix(s, "h0m") {
s = s[:len(s)-2]
}
return s
}
Testing es:
h, m, s := 5*time.Hour, 4*time.Minute, 3*time.Second
ds := []time.Duration{
h + m + s, h + m, h + s, m + s, h, m, s,
}
for _, d := range ds {
fmt.Printf("%-8v %v\n", d, shortDur(d))
}
Output (versuchen Sie es auf dem Go Playground):
5h4m3s 5h4m3s
5h4m0s 5h4m
5h0m3s 5h0m3s
4m3s 4m3s
5h0m0s 5h
4m0s 4m
3s 3s
1
Sie können die Dauer einfach wie folgt abrunden:
func RountTime(roundTo string, value time.Time) string {
since := time.Since(value)
if roundTo == "h" {
since -= since % time.Hour
}
if roundTo == "m" {
since -= since % time.Minute
}
if roundTo == "s" {
since -= since % time.Second
}
return since.String()
}
Verwandte Themen
- 1. Was bedeutet Nov 2h oder 2h NOV?
- 2. MySQL + Zeitdauer basierend auf Status
- 3. Zeitdauer Berechnung
- 4. berechnen Zeitdauer mit Python
- 5. Golang: String Datum Datum
- 6. Zeiger Golang von String
- 7. hinzufügen Zeitdauer C++ Zeitpunkt
- 8. Wie Zeitdauer eines Videoclips
- 9. golang konvertieren "type [] string" in string
- 10. NULL zu JSON-Feldern statt leeren Zeichenfolgen in Golang zuweisen
- 11. Golang: Zeit in String konvertieren
- 12. Golang Convert String zu io.Writer?
- 13. ios planedTimerWithTimeInterval für die Zeitdauer
- 14. RabbitListener String als ASCII Rückkehr statt String
- 15. fmt.Println Aufruf Fehler statt String()
- 16. Steuern Sie den Fortschritt einer UIView-Animation manuell statt automatisch über die Zeitdauer
- 17. Derselbe Codeblock braucht eine andere Zeitdauer als
- 18. Golang Rennen mit sync.Mutex auf Karte [string] int
- 19. wie kann ich gzip auf einer string in golang verwenden?
- 20. Meteor/MongoDB: Integer statt String auf Formular einfügen submit
- 21. Golang NULL in sql statt leere Zeichenfolge einfügen
- 22. Wie konvertiert man String in map [int] string in Golang
- 23. Was ist der Unterschied zwischen [] String und ... String in Golang?
- 24. Golang, Go: String in Gleitkommazahl umwandeln
- 25. Split String von Länge in Golang
- 26. Convert UTC-String zu Golang-Zeit-Objekt
- 27. golang - Konvertiere [] Byte in einen String Fehler
- 28. Wie Golang String durch Regex-Gruppe ersetzen?
- 29. String in Array in Golang konvertieren
- 30. Convert [] Schnittstelle zu [] String in Golang