From 3332dbe595f6cd48e18eec8187b585870fe944b3 Mon Sep 17 00:00:00 2001 From: mlgd Date: Thu, 26 Oct 2017 14:32:42 +0200 Subject: [PATCH] Update for MySQL timezone detection bug Use "DefaultTimeLoc" for "al.TZ" default value Don't set TZ on alias when t.Location() is empty You can set your MySQL server timezone on main.go init function. Example : orm.DefaultTimeLoc, _ = time.LoadLocation("Europe/Paris") --- orm/db_alias.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/orm/db_alias.go b/orm/db_alias.go index c7089239..a43e70e3 100644 --- a/orm/db_alias.go +++ b/orm/db_alias.go @@ -119,7 +119,7 @@ type alias struct { func detectTZ(al *alias) { // orm timezone system match database // default use Local - al.TZ = time.Local + al.TZ = DefaultTimeLoc if al.DriverName == "sphinx" { return @@ -136,7 +136,9 @@ func detectTZ(al *alias) { } t, err := time.Parse("-07:00:00", tz) if err == nil { - al.TZ = t.Location() + if t.Location().String() != "" { + al.TZ = t.Location() + } } else { DebugLog.Printf("Detect DB timezone: %s %s\n", tz, err.Error()) }