我正在尝试获取联系人的出生数据,但是如果用户未选择年份或联系人来自Facebook,则年份或数据本身就被隐藏了,因此它为我提供了年份的“1604”值,您可以看到我图像中的意思。

最佳答案

恭喜,您已发现实现细节!

首先,Contacts将日期存储为时间点,并且没有一年就无法存储时间点,因为每个时间点都有一年。因此,必须决定地址簿如何存储日期中的“未知”年份。出于以下几个原因,我们决定将“1604”作为好年份:

  • 当您谈论通讯录时,您的通讯录中不可能有任何人出生于1604年。
  • 1604是a年(根据leap年的计算规则),这意味着,如果您不知道其出生年份的人在2月29日出生,那么1604也可以处理。
  • 1604在儒略历-格里高利历切换之前。

  • 因此,如果要将出生日期从通讯簿中拉出,则需要在特殊情况下使用1604作为“年份未知的出生日期”。

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

    10-08 06:12