Константа time.RFC3339Nano
Константа time.RFC3339Nano представляет строковый формат
представления времени, соответствующий стандарту RFC3339
с дополнительной поддержкой наносекунд. Эта константа
имеет тип string и часто используется при форматировании
и парсинге временных меток в формате ISO 8601.
Константа содержит значение "2006-01-02T15:04:05.999999999Z07:00",
где наносекунды могут отображаться с точностью до 9 знаков.
При форматировании времени с помощью этой константы,
наносекунды будут включены в результирующую строку только в том
случае, если они не равны нулю.
Синтаксис
const RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
Пример
Давайте отформатируем текущее время с использованием константы
time.RFC3339Nano:
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
res := now.Format(time.RFC3339Nano)
fmt.Println(res)
}
Результат выполнения кода:
"2026-09-04T15:04:05.123456789Z"
Пример
Давайте сравним форматирование с константами time.RFC3339
и time.RFC3339Nano для одного времени:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, time.September, 4, 15, 4, 5, 123456789, time.UTC)
rfc3339 := t.Format(time.RFC3339)
rfc3339nano := t.Format(time.RFC3339Nano)
fmt.Println(rfc3339)
fmt.Println(rfc3339nano)
}
Результат выполнения кода:
"2026-09-04T15:04:05Z"
"2026-09-04T15:04:05.123456789Z"
Пример
Давайте разберем парсинг строки времени в формате
time.RFC3339Nano:
package main
import (
"fmt"
"time"
)
func main() {
timeStr := "2026-09-04T15:04:05.987654321Z"
t, err := time.Parse(time.RFC3339Nano, timeStr)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(t.UnixNano())
}
Результат выполнения кода:
"1791810245987654321"
Смотрите также
-
константу
time.RFC3339,
которая представляет формат RFC3339 без наносекунд -
функцию
time.Time.Format,
которая форматирует время согласно заданному шаблону -
функцию
time.Parse,
которая преобразует строку времени в объектtime.Time -
константу
time.Layout,
которая представляет стандартный шаблон форматирования времени