Для парсинга даты используется тот же концепт, что и для форматирования даты. Та же самая референтная дата и принципы лейаута могут быть использованы. В данной инструкции будет показано, как трансформировать строку в экземпляр Time
.
Как сделать парсинг даты в строку в Golang?
1. Создайте файл parse.go
со следующим содержимым:
Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎
Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
package main import ( "fmt" "time" ) func main() { // Если timezone не определена // тогда функция Parse возвращает // время в UTC временной зоне t, err := time.Parse("2/1/2006", "31/7/2015") if err != nil { panic(err) } fmt.Println(t) // Если дана timezone, тогда она // парсируется в данной временной зоне t, err = time.Parse("2/1/2006 3:04 PM MST", "31/7/2015 1:25 AM DST") if err != nil { panic(err) } fmt.Println(t) // Обратите внимание, что ParseInLocation принимает последний параметр который является временной зоной. // В данном случае, используется локальная временная зона компьютера t, err = time.ParseInLocation("2/1/2006 3:04 PM ", "31/7/2015 1:25 AM ", time.Local) if err != nil { panic(err) } fmt.Println(t) } |
2. Запустите код через go run parse.go
;
3. Посмотрите на результат в терминале:
1 2 3 |
2015-07-31 00:00:00 +0000 UTC 2015-07-31 01:25:00 +0000 DST 2015-07-31 01:25:00 +0000 UTC |
time.Parse() и time.ParseInLocation() для конвертирование строки в дату
Пакет time
содержит функцию Parse
для парсинга строки с информацией о времени.
Формат входной строки даты дается с референтной датой, форматированной для совпадающего формата. Помните, что рефернтное время — Jan 2 15:04:05 2006 MST
.
Если данная строка времени не содержит информацию о временной зоне, результат функции Parse
всегда будет в UTC
.
Если предоставляется информация о временной зоне, тогда время всегда будет экземпляром времени в предоставленной временной зоне.
Функция ParseInLocation
принимает третий аргумент, что является локацией. Если строка времени не содержит никакой информации о временной зоне, тогда время парсируется к экземпляру Time
в данной локации.
Администрирую данный сайт с целью распространения как можно большего объема обучающего материала для языка программирования Go. В IT с 2008 года, с тех пор изучаю и применяю интересующие меня технологии. Проявляю огромный интерес к машинному обучению и анализу данных.
E-mail: vasile.buldumac@ati.utm.md
Образование
Технический Университет Молдовы (utm.md), Факультет Вычислительной Техники, Информатики и Микроэлектроники
- 2014 — 2018 Universitatea Tehnică a Moldovei, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
- 2018 — 2020 Universitatea Tehnică a Moldovei, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»