Skip to content

Commit

Permalink
time: fix the fraction loss when encountering time string with timezo…
Browse files Browse the repository at this point in the history
…ne suffix (#37820)

* fix the issue of fraction loss when inserting time item

* fix wrong index

* add comments

Co-authored-by: Weizhen Wang <[email protected]>
Co-authored-by: Ti Chi Robot <[email protected]>
  • Loading branch information
3 people authored Sep 20, 2022
1 parent b5e17ad commit b8d929c
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
10 changes: 9 additions & 1 deletion types/time.go
Original file line number Diff line number Diff line change
Expand Up @@ -575,9 +575,17 @@ func GetFsp(s string) int {

// GetFracIndex finds the last '.' for get fracStr, index = -1 means fracStr not found.
// but for format like '2019.01.01 00:00:00', the index should be -1.
// It will not be affected by the time zone suffix. For format like '2020-01-01 12:00:00.123456+05:00', the index should be 19.
func GetFracIndex(s string) (index int) {
tzIndex, _, _, _, _ := GetTimezone(s)
var end int
if tzIndex != -1 {
end = tzIndex - 1
} else {
end = len(s) - 1
}
index = -1
for i := len(s) - 1; i >= 0; i-- {
for i := end; i >= 0; i-- {
if unicode.IsPunct(rune(s[i])) {
if s[i] == '.' {
index = i
Expand Down
3 changes: 3 additions & 0 deletions types/time_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,9 @@ func TestDateTime(t *testing.T) {
{"2020-05-28 23:59:59T T00:00:00", "2020-05-28 23:59:59"},
{"2020-10-22 10:31-10:12", "2020-10-22 10:31:10"},
{"2018.01.01 01:00:00", "2018-01-01 01:00:00"},

// For issue 35291
{"2020-01-01 12:00:00.123456+05:00", "2020-01-01 07:00:00.123456"},
}

for _, test := range table {
Expand Down

0 comments on commit b8d929c

Please sign in to comment.