Fix timezone setting ignored when formatting dates #992
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.
PR Details
Description
When
Settings.get<string>(SETTING_GLOBAL_TIMEZONE)returnsundefined,DateHelper.formatInTimezone()receives a falsy value and falls back toformat()instead offormatInTimeZone(), using local system time rather than the configured timezone.Changes:
src/utils/formatInTimezone.ts: Default to'UTC'when timezone setting is undefinedsrc/helpers/PanelSettings.ts: Default to'UTC'when timezone setting is undefinedBefore:
After:
Related Issue
Fixes issue where
"frontMatter.global.timezone": "Asia/Shanghai"was being ignored and dates were updated in UTC instead of the specified timezone.Motivation and Context
The ternary operator in
DateHelper.formatInTimezone()treats undefined/empty string as falsy, causing it to bypassformatInTimeZone()fromdate-fns-tz. This affects all date operations: auto-update, manual updates, and template placeholders.How Has This Been Tested
Types of changes
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.