feat: add ZonedDateTime converters - #1020
Conversation
There was a problem hiding this comment.
Pull request overview
Adds first-class java.time.ZonedDateTime converter support to the fesod-sheet module, integrating it into the default converter registry and providing unit coverage to validate the expected zone/offset handling behavior.
Changes:
- Introduces ZonedDateTime converters for STRING, NUMBER, and DATE write scenarios.
- Registers the new converters in
DefaultConverterLoaderfor default read/write discovery. - Adds unit tests to validate conversion behavior and default registration.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/DefaultConverterLoader.java | Registers ZonedDateTime converters in the default loader maps. |
| fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/zoneddatetime/ZonedDateTimeDateConverter.java | Adds DATE write converter (drops zone via toLocalDateTime() and applies data format). |
| fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/zoneddatetime/ZonedDateTimeNumberConverter.java | Adds NUMBER read/write converter using Excel serial dates and ZoneId.systemDefault() on read. |
| fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/zoneddatetime/ZonedDateTimeStringConverter.java | Adds STRING read/write converter with ISO/custom pattern formatting and parsing fallback. |
| fesod-sheet/src/test/java/org/apache/fesod/sheet/converter/ZonedDateTimeConverterTest.java | Adds targeted tests for conversion semantics and loader registration. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
…mpty format pattern - Add @tag(Tags.UNIT) to ZonedDateTimeConverterTest following repository conventions - Handle empty or null format strings in ZonedDateTimeStringConverter by falling back to ISO_ZONED_DATE_TIME - Add regression coverage for empty and null format patterns
nkuprins
left a comment
There was a problem hiding this comment.
Consider adding a test for use1904windowing :)
|
Added focused |
|
The newly added files in this PR are implemented from scratch and are not derived from Alibaba's EasyExcel. Therefore, no EasyExcel-related license header is required for these files. Please refer to: https://github.com/apache/fesod/blob/main/fesod-sheet/src/main/java/org/apache/fesod/sheet/FesodSheet.java |
Purpose of the pull request
Related: #1017
What's changed?
Adds the approved
java.time.ZonedDateTimeconverter family and registers it with the default converter loader.toLocalDateTime(), intentionally dropping zone/offset while preserving local wall-clock fields.ZoneId.systemDefault().ZonedDateTimeConverterTestcoverage for supported directions, registration, formatting, and timezone-lossiness behavior.Checklist
Focused validation: 6 ZonedDateTime tests passed; Java 1.8-targeted compilation, Spotless, and
git diff --checkpassed.