aboutsummaryrefslogtreecommitdiffstats
path: root/models/models.go
diff options
context:
space:
mode:
authorUnknwon <u@gogs.io>2015-08-20 00:56:12 +0800
committerUnknwon <u@gogs.io>2015-08-20 00:56:12 +0800
commitf114f7874303d249b2956c894b1a90b042430acf (patch)
tree63ea82c0a97dbb884de1f09620524f8d6c98f224 /models/models.go
parent6c2536b89c30ef1c99752abd50fdb3b5d2cd0691 (diff)
downloadgitea-f114f7874303d249b2956c894b1a90b042430acf.tar.gz
gitea-f114f7874303d249b2956c894b1a90b042430acf.zip
fix timezone!
Diffstat (limited to 'models/models.go')
-rw-r--r--models/models.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/models/models.go b/models/models.go
index e06d5cf88e..7d02bb9565 100644
--- a/models/models.go
+++ b/models/models.go
@@ -10,7 +10,9 @@ import (
"os"
"path"
"strings"
+ "time"
+ "github.com/Unknwon/com"
_ "github.com/go-sql-driver/mysql"
"github.com/go-xorm/core"
"github.com/go-xorm/xorm"
@@ -40,6 +42,25 @@ func sessionRelease(sess *xorm.Session) {
sess.Close()
}
+// Note: get back time.Time from database Go sees it at UTC where they are really Local.
+// So this function makes correct timezone offset.
+func regulateTimeZone(t time.Time) time.Time {
+ if setting.UseSQLite3 {
+ return t
+ }
+
+ zone := t.Local().Format("-0700")
+ if len(zone) != 5 {
+ return t
+ }
+ offset := com.StrTo(zone[2:3]).MustInt()
+
+ if zone[0] == '-' {
+ return t.Add(time.Duration(offset) * time.Hour)
+ }
+ return t.Add(-1 * time.Duration(offset) * time.Hour)
+}
+
var (
x *xorm.Engine
tables []interface{}