日期格式化器工作异常:拼接日期时间后解析结果不符
问题原因及解决方案
你的问题出在DateFormatter的日期格式字符串上:你用了YYYY来表示年份,但这是错误的。
YYYY代表周年(Week Year),它是按周划分的年份计算方式,比如某个日期所在的周如果属于上一个周年周期,就会解析出上一年的周年值。- 正确的公历年份格式应该用
yyyy。
把代码里的这一行:
formatter.dateFormat = "dd/MM/YYYY HH:mm"
改成:
formatter.dateFormat = "dd/MM/yyyy HH:mm"
另外,为了避免系统区域设置对日期解析的干扰,建议给DateFormatter指定固定的locale,比如:
formatter.locale = Locale(identifier: "en_US_POSIX")
修正后再解析23/06/2023 12:00,就能得到正确的日期结果了。
内容的提问来源于stack exchange,提问作者Damiano Miazzi
相关产品推荐
相关产品推荐

