Метод Hours
func (d Duration) Hours() float64
Hours возвращает продолжительность в виде количества часов числом с плавающей запятой.
Пример использования Hours
package main
import (
"fmt"
"time"
)
func main() {
h, _ := time.ParseDuration("4h30m")
fmt.Printf("Осталось %.1f часа до полудня.", h.Hours())
}
Вывод:
Осталось 4.5 часа до полудня.
Метод Microseconds
func (d Duration) Microseconds() int64
Microseconds возвращает длительность в виде целого числа микросекунд.
Пример использования Microseconds
package main
import (
"fmt"
"time"
)
func main() {
u, _ := time.ParseDuration("1s")
fmt.Printf("Одна секунда это %d микросекунд.\n",
u.Microseconds())
}
Вывод:
Одна секунда это 1000000 микросекунд.
Метод Milliseconds
func (d Duration) Milliseconds() int64
Milliseconds возвращает длительность в виде целого числа миллисекунд.
Пример использования Milliseconds
package main
import (
"fmt"
"time"
)
func main() {
u, _ := time.ParseDuration("1s")
fmt.Printf("Одна секунда это %d миллисекунд.\n",
u.Microseconds())
}
Вывод:
Одна секунда это 1000 миллисекунд.
Методы Minutes
func (d Duration) Minutes() float64
Minutes возвращает продолжительность в виде количества минут числом с плавающей точкой.
Пример использования Minutes
package main
import (
"fmt"
"time"
)
func main() {
m, _ := time.ParseDuration("1h30m")
fmt.Printf("Фильм длится %.0f минут.", m.Minutes())
}
Вывод:
Фильм длится 90 минут.
Метод Nanoseconds
func (d Duration) Nanoseconds() int64
Nanoseconds возвращает длительность в виде целого числа наносекунд.
Пример использования Nanoseconds
package main
import (
"fmt"
"time"
)
func main() {
u, _ := time.ParseDuration("1µs")
fmt.Printf("Одна микросекунда это %d наносекунд.\n",
u.Nanoseconds())
}
Вывод:
Одна микросекунда это 1000 наносекунд.
Метод Round (с версии Go 1.9)
func (d Duration) Round(m Duration) Duration
Round возвращает результат округления d до ближайшего кратного m. Поведение при округлении для значений на полпути заключается в округлении от нуля. Если результат превышает максимальное (или минимальное) значение, которое может быть сохранено в Duration, Round возвращает максимальную (или минимальную) продолжительность. Если m <= 0, Round возвращает d без изменений.
Пример использования Round
package main
import (
"fmt"
"time"
)
func main() {
d, err := time.ParseDuration("1h15m30.918273645s")
if err != nil {
panic(err)
}
round := []time.Duration{
time.Nanosecond,
time.Microsecond,
time.Millisecond,
time.Second,
2 * time.Second,
time.Minute,
10 * time.Minute,
time.Hour,
}
for _, r := range round {
fmt.Printf("d.Round(%6s) = %s\n",
r, d.Round(r).String())
}
}
Вывод:
d.Round( 1ns) = 1h15m30.918273645s
d.Round( 1µs) = 1h15m30.918274s
d.Round( 1ms) = 1h15m30.918s
d.Round( 1s) = 1h15m31s
d.Round( 2s) = 1h15m30s
d.Round( 1m0s) = 1h16m0s
d.Round( 10m0s) = 1h20m0s
d.Round(1h0m0s) = 1h0m0s
Метод Seconds
func (d Duration) Seconds() float64
Seconds возвращает продолжительность в виде количества секунд числом с плавающей запятой.
Пример использования Seconds
package main
import (
"fmt"
"time"
)
func main() {
m, _ := time.ParseDuration("1m30s")
fmt.Printf("Полторы минуты это %.0f секунд.",
m.Seconds())
}
Вывод:
Полторы минуты это 90 секунд.
Метод String
func (d Duration) String() string
String возвращает строку, представляющую продолжительность в форме "72h3m0.5s". Ведущие нулевые элементы опущены. В качестве особого случая для форматов длительностью менее одной секунды используется меньшая единица измерения (милли-, микро- или наносекунды), чтобы гарантировать, что начальная цифра не равна нулю. Нулевая длительность форматируется как 0s.
Пример использования String
package main
import (
"fmt"
"time"
)
func main() {
t1 := time.Date(2016, time.August, 15, 0, 0, 0, 0, time.UTC)
t2 := time.Date(2017, time.February, 16, 0, 0, 0, 0, time.UTC)
fmt.Println(t2.Sub(t1).String())
}
Вывод:
4440h0m0s
Метод Truncate (с версии Go 1.9)
func (d Duration) Truncate(m Duration) Duration
Truncate возвращает результат округления d до нуля, кратный m. Если m <= 0, Truncate возвращает d без изменений.
Пример использования Truncate
package main
import (
"fmt"
"time"
)
func main() {
d, err := time.ParseDuration("1h15m30.918273645s")
if err != nil {
panic(err)
}
trunc := []time.Duration{
time.Nanosecond,
time.Microsecond,
time.Millisecond,
time.Second,
2 * time.Second,
time.Minute,
10 * time.Minute,
time.Hour,
}
for _, t := range trunc {
fmt.Printf("d.Truncate(%6s) = %s\n",
t, d.Truncate(t).String())
}
}
Вывод:
d.Truncate( 1ns) = 1h15m30.918273645s
d.Truncate( 1µs) = 1h15m30.918273s
d.Truncate( 1ms) = 1h15m30.918s
d.Truncate( 1s) = 1h15m30s
d.Truncate( 2s) = 1h15m30s
d.Truncate( 1m0s) = 1h15m0s
d.Truncate( 10m0s) = 1h10m0s
d.Truncate(1h0m0s) = 1h0m0s
Читайте также:
- Пакет time в Golang, функции After, Sleep, Tick
- Пакет time в Golang, тип Duration и функции работающие с ним
- Форматирование времени и даты в Golang
Комментариев нет:
Отправить комментарий