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 г.