此结构是一个64位值,表示
自1601年1月1日以来100纳秒间隔的数量.
为什么设置"自1601年以来"?为什么不unix时间1970年甚至2000年?在时间日期如此遥远的兼容性我能做些什么?
回答自己.
ANSI日期将1601年1月1日定义为第1天,并用作COBOL整数日期的来源.这个时代是公历前400年闰年周期的开始,以2000年结束.正如您可以在Julian_day条目下的维基百科中找到的那样.
Ian*_*oyd 42
因为1/1/1601是时代的开始.
从Raymond Chen那里拿走:
为什么Win32纪元是1601年1月1日?
FILETIME自1601年1月1日起,该结构以100纳秒的间隔记录时间.为什么选择该日期?公历运行400年,1601是Windows NT设计时活动周期的第一年.换句话说,它被选择使数学出来很好.
我实际上有Dave Cutler的电子邮件确认了这一点.
那么,1601年1月1日是17世纪的第一天.钟摆是在17世纪发明的,可以将时间测量精确到1秒.因此(理论上)现有文献中可能存在从那个时期到时间点的参考文献.
但实际上,选择是任意的.必须有一个"时代",并提供
这个时代远远不够,"负时间"的价值很少,而且
未来的环绕时间远远不够几代人了,
任何选择都可以.
但是嘿,如果你担心的那么多,请给史蒂夫巴尔默发一封信.
我倾向于相信Ian Boyd的回答.其中的原因是它使数学更容易(格里高利闰年计算).鉴于这种简化有多么微小,以及它背后的推理有多么弱,它(IMO)"基本上"是任意的.(不是我说这是错的......)
这是一个务实的选择。
现代西方历法直到 1752 年才一致,当时英国(及其殖民地)采用公历,自 1582 年以来,大部分天主教欧洲都采用公历。
这是具有闰年等的现代日历,以使 1 月 1 日与冬至保持一致。
那么为什么不从 1752 年 1 月 1 日开始呢?因为基本的闰年规则“如果两位数的年份可以被四整除,则为闰年,除非四位数字的世纪也可以被四整除”)建立了 400 年的循环。从 1601 年 1 月 1 日开始的第一个完整周期(至少在罗马)。
闰年和日期的计算很痛苦,而没有在四百年的中途开始,所以 1600 是一个很好的开始,只要你记住 1752 年之前的任何日期都需要通过地理位置来限定,因为英国的日期是 10 天不同步。到这个时候罗马日期。
| 归档时间: |
|
| 查看次数: |
26432 次 |
| 最近记录: |