Repository navigation
fix(ios): preserve reminder time zones - #1124
Merged
Merged
Conversation
Owner
|
@claude review the PR. Also check if the fix works for both reminders and calendar events, as well as if the same issue exists on Android. |
|
Claude finished @robertying's task in 22s —— View job Review of #1124
SummaryThe fix looks correct and minimal for iOS reminders. I have no blocking concerns. Code notes (
|
robertying
reviewed
Sep 30, 2026
robertying
reviewed
Sep 30, 2026
Owner
|
感谢同学! 也请同学将自己加入到 About 页面中。可在此 PR 中更新。 |
Contributor
Author
|
谢谢!我已在 44310dc 中将我自己加入 About 页的贡献者列表,并添加了 GitHub 主页链接。 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
Assignment reminders synced on an iPhone using Beijing time look correct locally. However, after iCloud synchronization to a Mac using PDT, a deadline of 23:00 Beijing time can still appear as 23:00 PDT. The corresponding local time should be 08:00 PDT.
learnX already passes
Asia/Shanghaiwhen syncing reminders. The problem is that expo-calendar subsequently createsstartDateComponentsanddueDateComponentsusingCalendar.currentwithout retaining the time zone. The saved reminder therefore contains a floating local time.Fix
Patch expo-calendar's iOS implementation to build date components in the resolved time zone and explicitly preserve that zone on both the start and due dates.
The resolved time zone is retained during initialization, so it is available even when a new
EKReminderdoes not yet have date components. This applies to both creation and updates. All-day reminders remain date-only.Verification
Asia/Shanghai, then restarted it inAmerica/Los_Angelesand read the same records back. Their UTC deadlines remained unchanged:These are scripted simulator checks using test data. Physical iPhone-to-Mac iCloud synchronization has not been tested.
Screenshots
Both screenshots are from the patched simulator app. The test harness reads the same saved EventKit reminder and displays its deadline in learnX's assignment detail view.
The underlying deadline is
2026-10-01T15:00:00Zin both screenshots:Asia/Shanghai: 23:00.America/Los_Angeles: 08:00 PDT.