Skip to content

Commit c1aa7ac

Browse files
committed
Merge pull request mattn#155 from kartaca/master
fixed timezone problem for datetime types
2 parents 0071695 + 6710e99 commit c1aa7ac

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

Diff for: sqlite3.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -498,7 +498,7 @@ func (rc *SQLiteRows) Next(dest []driver.Value) error {
498498
val := int64(C.sqlite3_column_int64(rc.s.s, C.int(i)))
499499
switch rc.decltype[i] {
500500
case "timestamp", "datetime", "date":
501-
dest[i] = time.Unix(val, 0)
501+
dest[i] = time.Unix(val, 0).Local()
502502
case "boolean":
503503
dest[i] = val > 0
504504
default:
@@ -525,12 +525,14 @@ func (rc *SQLiteRows) Next(dest []driver.Value) error {
525525
dest[i] = nil
526526
case C.SQLITE_TEXT:
527527
var err error
528+
var timeVal time.Time
528529
s := C.GoString((*C.char)(unsafe.Pointer(C.sqlite3_column_text(rc.s.s, C.int(i)))))
529530

530531
switch rc.decltype[i] {
531532
case "timestamp", "datetime", "date":
532533
for _, format := range SQLiteTimestampFormats {
533-
if dest[i], err = time.Parse(format, s); err == nil {
534+
if timeVal, err = time.ParseInLocation(format, s, time.UTC); err == nil {
535+
dest[i] = timeVal.Local()
534536
break
535537
}
536538
}

0 commit comments

Comments
 (0)