You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift DateFormatter设置时区与区域后仍返回次日日期问题排查

排查方向
  • 先验证时区转换逻辑:KST是UTC+9时区,示例中的UTC时间2023-06-29 18:25:13 +0000加上9小时后是2023-06-30 03:25:13 KST,日期确实是30号。要确认你的预期日期是基于UTC还是KST本地时间,是否存在时区转换的认知偏差。
  • 检查时区实例是否有效:TimeZone(abbreviation: "KST")可能返回nil,此时DateFormatter会自动使用设备默认时区。建议改用TimeZone(identifier: "Asia/Seoul")创建时区,这种方式更可靠,避免缩写识别问题。可以打印formatter.timeZone确认是否成功设置为KST。
  • 确认原始日期myDate的实际时区:尽管示例标注的是+0000,仍需在代码中打印myDate.description,确保它确实是UTC时间,没有在之前的处理中被错误转换为其他时区的时间。
  • 排查Locale的潜在影响:暂时注释掉formatter.locale = Locale(identifier: "ko_kr"),观察格式化结果是否变化,确认是否是Locale的日历设置等因素导致异常。
  • 检查日期格式字符串:确保yyyy.MM.dd没有拼写错误,比如注意区分月份MM和分钟mm(当前写法正确,但需确认无笔误)。

内容的提问来源于stack exchange,提问作者hyo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 11:37:14