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

NSDateFormatter解析欧洲巴黎时区日期字符串返回nil问题

为什么该日期搭配巴黎时区转换会返回nil?

核心原因是这个时间在巴黎时区根本不存在:

2024年3月31日是欧洲巴黎时区的夏令时切换日,当地时间凌晨2:00会直接向前跳至3:00,也就是说,02:00到03:00之间的所有时间点都是无效的,系统无法将一个不存在的时间转换为有效的NSDate对象,因此dateFromString返回nil。

你的代码本身的格式设置是正确的:

  • 已经指定了en_US_POSIX locale,避免了区域格式干扰
  • 日期格式字符串yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'SS也和输入的2024-03-31T02:40:21.000匹配

要解决这个问题,你可以:

  • 检查服务端返回的时间是否合理,避免在夏令时切换的无效时间段内生成时间戳
  • 若无法修改服务端,可以考虑先将时间按UTC时区解析,再转换为目标时区的时间(UTC时区没有夏令时问题,所有时间都是有效的)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 11:35:54