FormatInternalDate outputs wrong formatted dates with timezones having negative offsets #1753
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
First of all
First of all, thank you very much for your work on MailKit. I'm very pleased to have the opportunity to contribute to it !
Now, let's see what I found 😃.
Issue
The
FormatInternalDate
method has a bug when handling time zones with negative offsets where the minutes component was non-zero. This resulted in incorrectly formatted outputs. Specifically, the method produced an invalid format with an extra negative sign for the minutes part. Examples of the incorrect outputs included:These incorrect outputs are associated with time zones such as:
Fix
To address this issue, I formatted the time zone offset beforehand to ensure the correct inclusion of the sign and the proper formatting of hours and minutes in an invariant culture way. Along the process, I also created unit tests that confirm that the fix does not introduce regressions.