C#与Delphi中日期/时间计算之间的差异

NoP*_*God 11 c# delphi datetime

德尔福:

SecondsBetween(StrToDateTime('16/02/2009 11:25:34 p.m.'), StrToDateTime('1/01/2005 12:00:00 a.m.'));

130289133
Run Code Online (Sandbox Code Playgroud)

C#:

TimeSpan span = DateTime.Parse("16/02/2009 11:25:34 p.m.").Subtract(DateTime.Parse("1/01/2005 12:00:00 a.m."));

130289134
Run Code Online (Sandbox Code Playgroud)

它也不一致.有些日期会加起来相同,即..

TimeSpan span = DateTime.Parse("16/11/2011 11:25:43 p.m.").Subtract(DateTime.Parse("1/01/2005 12:00:00 a.m."));

SecondsBetween(StrToDateTime('16/11/2011 11:25:43 p.m.'), StrToDateTime('1/01/2005 12:00:00 a.m.'));

both give

216905143
Run Code Online (Sandbox Code Playgroud)

实际上用于编码数据的总秒数,我正在尝试将应用程序移植到C#,所以即使一秒钟完全抛弃所有内容.

任何人都可以解释这种差异吗?有没有办法让c#匹配delphi?

编辑:响应建议它可能是闰秒相关:两个日期范围包含相同数量的闰秒(2),因此您可能会预期两者都不匹配.但相反,我们看到了不一致

16/02/2009 - 1/01/2005 = Delphi and C# calculate a different total seconds

16/11/2011 - 1/01/2005 = They calculate the same total seconds
Run Code Online (Sandbox Code Playgroud)

RRU*_*RUZ 7

这个问题似乎与这个QC 59310有关,这个错误在Delphi XE中修复了.