Функция time.ParseDuration

Функция time.ParseDuration преобразует строку, представляющую длительность, в значение типа time.Duration. Она принимает один параметр - строку с длительностью, и возвращает значение типа time.Duration и ошибку. Строка может содержать числа с плавающей точкой и суффиксы единиц измерения: ns (наносекунды), us (микросекунды), ms (миллисекунды), s (секунды), m (минуты), h (часы).

Синтаксис

gotime.ParseDuration(durationStr)

Пример

Давайте преобразуем строку "10s" в длительность:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  duration, err := time.ParseDuration("10s")
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(duration)
}

Результат выполнения кода:

go"10s"

Пример

Давайте преобразуем строку с несколькими единицами измерения "2h30m":

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  duration, err := time.ParseDuration("2h30m")
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(duration)
}

Результат выполнения кода:

go"2h30m0s"

Пример

Давайте преобразуем строку с дробным числом "1.5s":

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  duration, err := time.ParseDuration("1.5s")
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(duration)
}

Результат выполнения кода:

go"1.5s"

Пример

Давайте попробуем преобразовать строку с неверным форматом "10":

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  duration, err := time.ParseDuration("10")
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(duration)
}

Результат выполнения кода:

go"time: invalid duration \"10\""

Смотрите также

  • тип time.Duration,
    который представляет интервал времени
  • метод time.Duration.Seconds,
    который возвращает длительность в секундах
  • метод time.Duration.Minutes,
    который возвращает длительность в минутах
  • метод time.Duration.Hours,
    который возвращает длительность в часах