NSDate年份值返回“1604”?

我试图获取联系人的出生数据,但如果用户没有选择年份或联系人来自Facebook和年份或自己的数据被隐藏,那么它给我年份的“1604”值你可以看到我意思是在图像中。

在此处输入图像描述

在此处输入图像描述

恭喜,您已经发现了一个实现细节!

首先,联系人将日期存储为时间点,并且不可能存储没有一年的时间点,因为每个时间点都有一年。 因此,必须决定地址簿如何在日期中存储“未知”年份。 由于以下几个原因,决定“1604”将是一个好年头:

  1. 当你在谈论地址簿时,你的地址簿中不可能有人在1604年出生。
  2. 1604是闰年(根据闰年计算的规则),这意味着如果你不知道出生年份的人是在2月29日出生的,那么1604也可以处理。
  3. 1604年是Julian-Gregorian日历开关之前。

因此,如果你从地址簿中提取出生日期,你需要特殊情况1604作为“未知年份的生日”。

注意:据我所知,只有在处理公历时才支持此function。 对于所有其他日历,此行为未定义。

您可以在viewDidLoad中初始化年份。

或者检查用户是否未选择年份,显示错误消息。