非常有意思的文章。 莎士比亚和塞万提斯(堂吉诃德的作者)都死于“1616年4月23日”,但是由于当时英国并没有像意大利一样采用公历(格里高利历), 所以两个“4月23日”时间上相隔了10天。

点击文章中的链接可以了解很多有趣的历史。 比如公历是什么时候推广的、联合国教科文组织犯的错误、每个国家推行公历的时间是不同的(比如中国是在1912年)等等。 另外时区的概念也是19世纪铁路流行后才有的概念。

如果程序里要处理历史上的日期,最好了解一下相关的国家是什么时候推行公历的,然后采用的库也要能正确处理这种Pre-Gregorian的日期。

Ruby中的Time类不能正确处理文中提到的“莎士比亚和塞万提斯是不是死于同一天”的问题。 另一个类DateTime可以。

附另一个Stackoverflow上的问题,Why is subtracting these two times (in 1927) giving a strange result?。 讲了什么上海时间的”1927-12-31 23:54:07”和”1927-12-31 23:54:08”差了353秒,而不是1秒。