Константа time.Layout

Константа time.Layout представляет собой стандартный шаблон форматирования даты и времени в языке Go. Она используется в функциях Format и Parse для преобразования времени в строку и обратно. Особенность форматирования в Go заключается в том, что нужно использовать не произвольные символы, а конкретную дату для указания формата - "Mon Jan 2 15:04:05 MST 2006".

Константа time.Layout содержит именно этот шаблон и служит основой для создания собственных форматов. Ее значение: "01/02 03:04:05PM '06 -0700".

Синтаксис

goconst Layout = "01/02 03:04:05PM '06 -0700"

Пример

Давайте отформатируем текущую дату и время с использованием константы time.Layout:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  now := time.Now()
  res := now.Format(time.Layout)
  fmt.Println(res)
}

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

go"04/09 10:15:30PM '26 +0300"

Пример

Парсинг строки времени с использованием константы time.Layout:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  layout := time.Layout
  timeStr := "12/25 11:45:30PM '23 -0500"
  
  t, err := time.Parse(layout, timeStr)
  if err != nil {
    fmt.Println(err)
    return
  }
  
  fmt.Println(t)
}

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

go"2023-12-25 23:45:30 -0500 EST"

Пример

Создание собственного формата на основе константы time.Layout путем замены его компонентов:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  now := time.Now()
  
  // Создаем свой формат на основе Layout
  customLayout := "02/01/2006 15:04:05"
  res := now.Format(customLayout)
  
  fmt.Println(res)
}

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

go"04/09/2026 22:15:30"

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

  • константу time.ANSIC,
    которая предоставляет стандартный формат ANSI C
  • константу time.RFC3339,
    которая задает формат по стандарту RFC 3339
  • константу time.Kitchen,
    которая представляет формат времени в стиле кухонных часов
  • метод time.Time.Format,
    который форматирует время согласно указанному шаблону