diff --git a/.github/workflows/github-actions.yml b/.github/workflows/github-actions.yml
index 132f03e..0e304f5 100644
--- a/.github/workflows/github-actions.yml
+++ b/.github/workflows/github-actions.yml
@@ -19,7 +19,7 @@
         os:
           - ubuntu-latest
         go_version:
-          - 1.13
+          - 1.17
         jdk_version:
           - 1.8
     env:
diff --git a/date.go b/date.go
index 0b5329a..4fa6b25 100644
--- a/date.go
+++ b/date.go
@@ -42,12 +42,12 @@
 		return append(b, BC_NULL)
 	}
 	b = append(b, BC_DATE)
-	return append(b, PackInt64(vi.UnixNano()/1e6)...)
+	return append(b, PackInt64(vi.UnixMilli())...)
 }
 
-func encDateInMimute(b []byte, v time.Time) []byte {
+func encDateInMinute(b []byte, v time.Time) []byte {
 	b = append(b, BC_DATE_MINUTE)
-	return append(b, PackInt32(int32(v.UnixNano()/60e9))...)
+	return append(b, PackInt32(int32(v.Unix()/60))...)
 }
 
 /////////////////////////////////////////
diff --git a/date_test.go b/date_test.go
index f0a8b6f..2954ffc 100644
--- a/date_test.go
+++ b/date_test.go
@@ -66,6 +66,22 @@
 	d = NewDecoder(e.Buffer())
 	res, err = d.Decode()
 	t.Logf("decode(%s, %s) = %v, %v\n", v, tz.Local(), res, err)
+	assert.Equal(t, tz.Local(), res)
+}
+
+func TestEncDateIssue348(t *testing.T) {
+	e := NewEncoder()
+	v := "2914-02-09 06:15:23"
+	tz, _ := time.Parse("2006-01-02 15:04:05", v)
+	e.Encode(tz)
+	if len(e.Buffer()) == 0 {
+		t.Fail()
+	}
+
+	d := NewDecoder(e.Buffer())
+	res, err := d.Decode()
+	t.Logf("decode(%s, %s) = %v, %v\n", v, tz.Local(), res, err)
+	assert.Equal(t, tz.Local(), res)
 }
 
 func testDateFramework(t *testing.T, method string, expected time.Time) {
