yxtiblin
@yxtiblin

Как преобразовать time.Time в unix?

Столкнулся с проблемой.
В базе данных PostgreSQL хранится дата и время в формате "timestamp without time zone"
Если достать из бд дату и время и попытаться преобразовать ее в секунды то добавляется 4 лишних часа
Пример:
fmt.Println(menu.OpeningRecordAt, "|", time.Unix(menu.OpeningRecordAt.Unix(), 0))
// 2023-05-21 00:00:00 +0000 UTC | 2023-05-21 04:00:00 +0400 +04

Какие способы это исправить или преобразовать дату и время секунды корректнее?
  • Вопрос задан
  • 157 просмотров
Пригласить эксперта
Ответы на вопрос 1
yxtiblin
@yxtiblin Автор вопроса
я решил эту проблему таким образом
tm := time.Date(
		menu.OpeningRecordAt.Year(),
		menu.OpeningRecordAt.Month(),
		menu.OpeningRecordAt.Day(),
		menu.OpeningRecordAt.Hour(),
		menu.OpeningRecordAt.Minute(),
		menu.OpeningRecordAt.Second(),
		menu.OpeningRecordAt.Nanosecond(),
		time.Local,
	)

но надеюсь есть альтернативы лучше
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы