Skip to content

fix: round pre-epoch dates down to their UTC day - #313

Open
Shubham-Padkonde wants to merge 1 commit into
linkedin:masterfrom
Shubham-Padkonde:fix/pre-epoch-date-rounding
Open

Shubham-Padkonde wants to merge 1 commit into
linkedin:masterfrom
Shubham-Padkonde:fix/pre-epoch-date-rounding

Conversation

@Shubham-Padkonde

Copy link
Copy Markdown

Encoding a date from a time.Time before 1970 with a non-midnight time currently rounds toward zero. For example, 1969-12-31T12:00:00Z becomes day 0 and decodes as 1970-01-01, rather than day -1.

Round negative, non-integral day counts down while keeping the existing UTC conversion. This preserves the intended day when discarding the time component and matches the Avro date representation.

Seven cases cover negative partial days, the nanosecond before the epoch, exact midnight, and positive dates. Each checks binary encoding, textual encoding, and binary decoding to midnight. Three cases fail before the fix. All tests (go test ./...), package static checks (go vet .), gofmt, and diff whitespace checks pass afterward. go vet ./... still reports unreachable code in the unchanged examples/soe/main.go:52.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant