代码之家  ›  专栏  ›  技术社区  ›  Nathan DeWitt

我应该如何在SharePoint中存储旧日期?

  •  4
  • Nathan DeWitt  · 技术社区  · 15 年前

    我需要在SharePoint中存储需要追溯到公元前5000年左右的日期。理想情况下,我希望能够进行日期加减,如下所示:

    oldDate = '5000 BC';
    newDate = '1995 AD';
    DateDiff(oldDate, newDate, 'Years'); // equals 6995
    

    我应该如何进行?基于字符串构建一个旧的日期类?只使用常规日期,但添加一个使日期为负数的广告或BC?

    3 回复  |  直到 15 年前
        1
  •  5
  •   T.E.D.    15 年前

    这是一个非常重要的问题,实际上取决于您希望如何处理这些日期。例如,自1582年以来,我们只使用当前(公历)日历。在此之前是朱利安历法,在此之前是古罗马历法。更糟糕的是,这些信息只适用于西欧(以及与文化相关的地区)。所以,如果你希望通过简单的数学计算,能为历史事件提供合适的可接受日期,那你就有一个大约会了。

    如果你只想带着 Gregorian calendar 向后看,我想这是可行的。然而,仍然存在错误,在这个规模上,它很重要。来自维基百科:

    在数千年的时间尺度上, 公历落后了 随着时间的推移,时间稍长(参见 加速和闰秒)而 这一年保持了更统一的标准 期间

        2
  •  2
  •   eXXL    15 年前

    如果您只对年感兴趣,而对天不感兴趣,那么可以使用自定义编辑器构建自定义字段,并将年值存储为整数值。

        3
  •  0
  •   Nathan DeWitt    15 年前

    最后,我将日期存储为ISO 8601格式的文本字段:
    YYYY-MM-DDThh:mm:ss.sTZD

    您不必存储整个字符串,例如,如果您想存储5000 BC,您可以输入 -5000-01-01 . 我不太容易得到我的日期加减法,但是以我想要的格式得到数据要容易得多。