【发布时间】:2014-10-03 05:36:10
【问题描述】:
我的程序以ulong 格式接收文件时间,我必须将其转换为DateTime 格式。所以这是我写的函数。
public static DateTime fileTimeToDateTime(ulong fileTime)
{
long temp = (long)fileTime;
DateTime dt1 = DateTime.FromFileTime(temp);
return dt1;
}
但是对于文件时间 2213360000 ,函数返回 1/1/1601 12:00:00 AM 但正确的应该是 4/22/2009 3:28:29 PM 所以我用这个 webpage 将文件时间转换为人类可读的时间,它给了我正确的值。所以我的功能看起来有问题。然后我使用此代码和平转换正确的日期。
string windowsTime = "4/22/2009 3:28:29 PM";
DateTime time = DateTime.Parse(windowsTime);
long ft = time.ToFileTime();
所以这里的输出ft 是128848589090000000,而不是我得到的文件时间(2213360000)。所以看起来我的想法有问题。有什么想法吗?
【问题讨论】:
-
只是一个猜测,但它的精度可能低于完整文件时间。乘以 10 的某个幂可能会产生“正确”的结果。虽然最好能从源头验证您收到的值究竟是什么意思。