Метод time.Time.UnixNano
Метод UnixNano преобразует значение времени типа time.Time
в целое число типа int64, представляющее количество наносекунд,
прошедших с эпохи Unix (1 января 1970 года UTC).
Этот метод возвращает высокоточное представление времени,
которое часто используется для вычисления промежутков времени,
сортировки событий или в качестве уникального идентификатора момента времени.
Синтаксис
func (t time.Time) UnixNano() int64
Пример
Давайте получим текущее время в наносекундах:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Now()
res := t.UnixNano()
fmt.Println(res)
}
Результат выполнения кода:
"1700000000000000000"
Пример
Создадим конкретную дату и получим ее значение в наносекундах:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2024, 1, 1, 0, 0, 0, 0, time.UTC)
res := t.UnixNano()
fmt.Println(res)
}
Результат выполнения кода:
"1704067200000000000"
Пример
Используем UnixNano для измерения времени выполнения операции:
package main
import (
"fmt"
"time"
)
func main() {
start := time.Now().UnixNano()
sum := 0
for i := 0; i < 1000000; i++ {
sum += i
}
end := time.Now().UnixNano()
duration := end - start
fmt.Println(duration)
}
Результат выполнения кода:
"1500000"
Обратите внимание, что значение может отличаться в зависимости от производительности системы.
Смотрите также
-
метод
time.Time.Unix,
который возвращает количество секунд с эпохи Unix -
метод
time.Time.UnixMilli,
который возвращает количество миллисекунд с эпохи Unix -
метод
time.Time.UnixMicro,
который возвращает количество микросекунд с эпохи Unix -
метод
time.Time.Sub,
который вычисляет разницу между двумя моментами времени