
DateTime – это тип, содержащий свойства даты и времени в определенный момент времени. Язык Go предоставляет несколько способов форматирования даты и времени с помощью пакета time.
Пакет time предоставляет необходимые функции для определения, измерения и отображения времени. Пакет time также содержит основные методы форматирования, анализа, отображения и управления датой и временем. Любая переменная или поле в структуре, которая хранит время как значение, будет иметь тип time.Time, представляющий момент времени с точностью до наносекунды. Например, приведенный ниже код выводит текущую дату и время со всей информацией на стандартную консоль.
Текущая дата и время
package main
import (
"fmt"
"time"
)
func main() {
// current date and time from the time package
currentDateTime := time.Now()
fmt.Printf("The current Date and Time is : \n%v\n", currentDateTime)
}
The Current Date and Time is :
2023-04-15 00:35:28.874346692 +0530 IST m=+0.000067377
Спецификаторы стандартного формата и примеры их использования
В целях удобочитаемости мы склонны форматировать определенную дату и время; Go предоставляет метод time.Time, который можно вызывать для значения типа Time. Format — это метод, который принимает макет строки и преобразует приемник времени в строку, соответствующую указанному шаблону.
ДАТА: 2 января 2006 г. – 02.01.2006 г.
Это популярный формат в США, который отображает дату в формате месяц-день-год. В Go вы можете использовать строку макета «2 января 2006 г.» или «02/01/2006» для форматирования дат таким образом.
package main
import (
"fmt"
"time"
)
func main() {
t := time.Now()
fmt.Println(t.Format("April 15, 2023"))
fmt.Println(t.Format("04/15/2023"))
}
April 15, 2023
04/15/2023
Этот формат обычно используется для отображения времени в формате часы:минуты:секунды. В Go вы можете использовать строку макета «15:04:05», чтобы отображать время в этом формате. Чтобы отображать время в 12-часовом формате с индикатором AM/PM, используйте строку макета «03:04 PM».
package main
import (
"fmt"
"time"
)
func main() {
t := time.Now()
fmt.Println(t.Format("19:14:27"))
fmt.Println(t.Format("07:14 PM"))
}
19:14:27
07:14 PM
Go поддерживает различные форматы даты и времени; однако при желании вы также можете использовать одну из предопределенных Layout констант, поставляемых с Go. layout — это строковый формат, передаваемый в качестве аргумента функции Format.
Вот некоторые предопределенные макеты, но, пожалуйста, обратитесь к документации Go для получения полного списка.
ISO 8601 — RFC3339:
ISO 8601 — это международный стандарт представления даты и времени. RFC3339 — это профиль ISO 8601, который обычно используется в Интернете.
package main
import (
"fmt"
"time"
)
func main() {
currentDateTime := time.Now()
fmt.Printf("Kitchen: %v\n", currentDateTime.Format(time.Kitchen))
fmt.Printf("RFC1123: %v\n", currentDateTime.Format(time.RFC1123))
fmt.Printf("RFC3339: %v\n", currentDateTime.Format(time.RFC3339))
}
Kitchen: 1:17AM
RFC1123: Sat, 15 Apr 2023 01:17:00 IST
RFC3339: 2023-04-15T01:19:14+05:30
Дополнительную информацию об элементах макета можно найти в документации Go для пакета time.
Это всего лишь несколько примеров форматирования даты и времени в Go. Для получения дополнительной информации ознакомьтесь с документацией Go для пакета time.
Первоначально опубликовано на https://developersjournal.in 14 апреля 2023 г.