You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
766 B
43 lines
766 B
package replication |
|
|
|
import ( |
|
"fmt" |
|
"strings" |
|
"time" |
|
) |
|
|
|
var ( |
|
fracTimeFormat []string |
|
) |
|
|
|
// fracTime is a help structure wrapping Golang Time. |
|
type fracTime struct { |
|
time.Time |
|
|
|
// Dec must in [0, 6] |
|
Dec int |
|
} |
|
|
|
func (t fracTime) String() string { |
|
return t.Format(fracTimeFormat[t.Dec]) |
|
} |
|
|
|
func formatZeroTime(frac int, dec int) string { |
|
if dec == 0 { |
|
return "0000-00-00 00:00:00" |
|
} |
|
|
|
s := fmt.Sprintf("0000-00-00 00:00:00.%06d", frac) |
|
|
|
// dec must < 6, if frac is 924000, but dec is 3, we must output 924 here. |
|
return s[0 : len(s)-(6-dec)] |
|
} |
|
|
|
func init() { |
|
fracTimeFormat = make([]string, 7) |
|
fracTimeFormat[0] = "2006-01-02 15:04:05" |
|
|
|
for i := 1; i <= 6; i++ { |
|
fracTimeFormat[i] = fmt.Sprintf("2006-01-02 15:04:05.%s", strings.Repeat("0", i)) |
|
} |
|
}
|
|
|