从Windows文件时间转换为DateTime

Nei*_*ord 3 .net c# time datetime

我有一个值的时间戳634876488000000000和预期的日期04th November 2012, 18:00:00.当我转换它时,年份3612而不是2012(日,月和时间都是正确的).

这是一个例子:

Console.WriteLine(DateTime.FromFileTimeUtc(634876488000000000).ToString());
Console.WriteLine(DateTime.FromFileTime(634876488000000000).ToString());
Run Code Online (Sandbox Code Playgroud)

并输出:

04/11/3612 18:00:00
04/11/3612 18:00:00

经过进一步研究,我发现如果我Get-Date 634876488000000000在Powershell中使用,我会得到正确的预期日期04 November 2012 18:00:00.

任何人都可以解释如何使用C#正确地将时间戳转换为.NET DateTime对象吗?

Hab*_*bib 6

我的第一个猜测是,这个数字是DateTime.Ticks,只是在Visual Studio中尝试了以下内容而我得到了.{04/11/2012 6:00:00 PM}对于:

DateTime dt = DateTime.MinValue.AddTicks(634876488000000000);
Run Code Online (Sandbox Code Playgroud)

或者使用DateTime Constructor,它将ticks作为参数.

DateTime dt = new DateTime(634876488000000000);
Run Code Online (Sandbox Code Playgroud)