parent
e8c0ff31b3
commit
a4876ffec2
12
engine.go
12
engine.go
|
@ -1086,6 +1086,18 @@ func (engine *Engine) TZTime(t time.Time) (r time.Time) {
|
|||
return
|
||||
}
|
||||
|
||||
func (engine *Engine) TZLocation() (r *time.Location) {
|
||||
switch engine.TimeZone {
|
||||
case "Local", "L":
|
||||
r = time.Local
|
||||
case "UTC", "U":
|
||||
fallthrough
|
||||
default:
|
||||
r = time.UTC
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (engine *Engine) NowTime(sqlTypeName string) interface{} {
|
||||
t := time.Now()
|
||||
return engine.FormatTime(sqlTypeName, t)
|
||||
|
|
14
session.go
14
session.go
|
@ -1930,17 +1930,17 @@ func (session *Session) byte2Time(col *Column, data []byte) (outTime time.Time,
|
|||
x = time.Unix(0, sd)
|
||||
}
|
||||
} else if len(sdata) > 19 {
|
||||
x, err = time.Parse(time.RFC3339Nano, sdata)
|
||||
x, err = time.ParseInLocation(time.RFC3339Nano, sdata, session.Engine.TZLocation())
|
||||
if err != nil {
|
||||
x, err = time.Parse("2006-01-02 15:04:05.999999999", sdata)
|
||||
x, err = time.ParseInLocation("2006-01-02 15:04:05.999999999", sdata, session.Engine.TZLocation())
|
||||
}
|
||||
if err != nil {
|
||||
x, err = time.Parse("2006-01-02 15:04:05.9999999 Z07:00", sdata)
|
||||
x, err = time.ParseInLocation("2006-01-02 15:04:05.9999999 Z07:00", sdata, session.Engine.TZLocation())
|
||||
}
|
||||
} else if len(sdata) == 19 {
|
||||
x, err = time.Parse("2006-01-02 15:04:05", sdata)
|
||||
x, err = time.ParseInLocation("2006-01-02 15:04:05", sdata, session.Engine.TZLocation())
|
||||
} else if len(sdata) == 10 && sdata[4] == '-' && sdata[7] == '-' {
|
||||
x, err = time.Parse("2006-01-02", sdata)
|
||||
x, err = time.ParseInLocation("2006-01-02", sdata, session.Engine.TZLocation())
|
||||
} else if col.SQLType.Name == Time {
|
||||
if strings.Contains(sdata, " ") {
|
||||
ssd := strings.Split(sdata, " ")
|
||||
|
@ -1955,7 +1955,7 @@ func (session *Session) byte2Time(col *Column, data []byte) (outTime time.Time,
|
|||
//fmt.Println(sdata)
|
||||
|
||||
st := fmt.Sprintf("2006-01-02 %v", sdata)
|
||||
x, err = time.Parse("2006-01-02 15:04:05", st)
|
||||
x, err = time.ParseInLocation("2006-01-02 15:04:05", st, session.Engine.TZLocation())
|
||||
} else {
|
||||
outErr = errors.New(fmt.Sprintf("unsupported time format %v", sdata))
|
||||
return
|
||||
|
@ -1964,7 +1964,7 @@ func (session *Session) byte2Time(col *Column, data []byte) (outTime time.Time,
|
|||
outErr = errors.New(fmt.Sprintf("unsupported time format %v: %v", sdata, err))
|
||||
return
|
||||
}
|
||||
outTime = session.Engine.TZTime(x)
|
||||
outTime = x
|
||||
return
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue