panic: unknown time zone local на Go 1.21
При запуске программы у меня вылезает вот такая ошибка:
panic: unknown time zone local
goroutine 1 [running]:
github.com/TheDifferentGuy/mysql-api/pkg/config.Connect()
/home/network_fox/Рабочий стол/Программирование/mysql-api/pkg/config/app.go:18+0xdc
github.com/TheDifferentGuy/mysql-api/pkg/modules.init.0()
/home/network_fox/Рабочий стол/Программирование/mysql-api/pkg/modules/book.go:18+0x13
exit status 2
И как я понял он мне говорит об этих двух файлах, первый который подключает мою программу к БД, а второй который создаёт объект.
Это код подключения:
package config
import (
"fmt"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
)
var (
db *gorm.DB
)
func Connect() {
d, err := gorm.Open("mysql", "ilya:Ilya@12@/simplerest?charset=utf8&parseTime=True&loc=local")
if err != nil {
panic(err)
}
fmt.Println("It's running")
db = d
}
func GetDB() *gorm.DB {
return db
}
Это код создания объекта:
package modules
import (
"github.com/TheDifferentGuy/mysql-api/pkg/config"
"github.com/jinzhu/gorm"
)
var db *gorm.DB
type Book struct {
gorm.Model
Name string `gorm:""json:"name"`
Author string `json:"author"`
Publication string `json:"publication"`
}
func init() {
config.Connect()
db = config.GetDB()
db.AutoMigrate(&Book{})
}
func (b *Book) CreateBook() *Book {
db.NewRecord(b)
db.Create(&b)
return b
}
func GetAllBooks() []Book {
var Books []Book
db.Find(Books)
return Books
}
func GetBookById(id int64) (*Book, *gorm.DB) {
var getBook Book
db := db.Where("ID=?", id).Find(&getBook)
return &getBook, db
}
func DeleteBook(id int64) Book {
var book Book
db.Where("ID=?", id).Delete(book)
return book
}
И я не понимаю как убрать эту ошибку.Помогите пожалуйста.
Ответы (1 шт):
Автор решения: Pak Uula
→ Ссылка
В строке подключения mysql уберите параметр loc=. По-умолчанию сервер БД использует локальный часовой пояс. Ну или напишите там loc=Europe%2FMoscow, чтобы задать часовой пояс Europe/Moscow.