Skip to content

Commit a5d658a

Browse files
committed
parse unixtime with nano secs
1 parent 5a1d610 commit a5d658a

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

pipeline/util.go

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,22 @@ func parseUnixTime(value string) (time.Time, error) {
115115
var err error
116116
switch len(numbers) {
117117
case 1:
118-
sec, err = strconv.ParseInt(numbers[0], 10, 64)
119-
if err != nil {
120-
return time.Time{}, err
118+
switch len(numbers[0]) {
119+
case 13: // Milliseconds
120+
millis, err := strconv.ParseInt(value, 10, 64)
121+
if err != nil {
122+
return time.Time{}, err
123+
}
124+
sec = millis / 1000
125+
nsec = (millis % 1000) * 1_000_000 // Convert remaining milliseconds to nanoseconds
126+
case 10: // Seconds
127+
sec, err = strconv.ParseInt(value, 10, 64)
128+
if err != nil {
129+
return time.Time{}, err
130+
}
131+
nsec = 0 // No nanoseconds
132+
default:
133+
return time.Time{}, fmt.Errorf("unexpected time format")
121134
}
122135
case 2:
123136
sec, err = strconv.ParseInt(numbers[0], 10, 64)

0 commit comments

Comments
 (0)