技术科普
移动应用时区:用户 traveling 时的时间显示
移动设备的时区会随用户旅行自动变化,这给应用的时间显示和提醒带来挑战。正确处理的關鍵是区分“设备时区”和“业务时区”。
获取设备时区
iOS 和 Android 都提供系统时区 API。跨平台框架通常封装为返回 IANA 时区名称。应用可读取设备时区作为默认展示时区。
时区变更
- 系统会在时区变化时发送通知,应用可监听并刷新界面
- 后台运行时可能无法立即响应,需在回到前台时重新检查
- 已安排的本地通知可能仍按旧时区触发
- 缓存的时区信息应设置过期或校验机制
业务时区
航班、会议、直播等事件有明确的业务时区,不应随设备变化。应用应保存事件的时区 ID,并在展示时同时标注“当地时间”和“你的时间”。
本地通知
提醒类通知需明确是按设备本地时间还是固定时刻触发。跨时区旅行后,用户可能希望提醒跟随当地时间,也可能希望保持原时区,产品应提供选择。
测试建议
- 模拟跨时区旅行和夏令时切换
- 测试后台与前台状态下的时区变更
- 验证通知在时区变化后的行为
- 覆盖无网络和手动改时区的场景
移动端时区处理的核心是:展示可以跟随设备,业务规则必须显式保存。