Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将Windows FiltTime值转换为.NET DateTime_C# - Fatal编程技术网

C# 将Windows FiltTime值转换为.NET DateTime

C# 将Windows FiltTime值转换为.NET DateTime,c#,C#,我们有一个来自第三方软件的数据库,其中LastModifiedDate字段存储为WINDOWS filetime。 我们需要将其转换为.NET DateTime格式,令人惊讶的是,它具有-ve值 .NET的DateTime.FromFileTimeUtc方法适用于+ve文件时间值btu适用于-ve值,但不适用 如何将-ve filtetime值转换为DateTime格式? 样本值: -ve值:-9094325347534722713 +ve值:8872694038044633872您正在从数据库

我们有一个来自第三方软件的数据库,其中LastModifiedDate字段存储为WINDOWS filetime。 我们需要将其转换为.NET DateTime格式,令人惊讶的是,它具有-ve值

.NET的DateTime.FromFileTimeUtc方法适用于+ve文件时间值btu适用于-ve值,但不适用

如何将-ve filtetime值转换为DateTime格式? 样本值: -ve值:-9094325347534722713
+ve值:8872694038044633872

您正在从数据库获取垃圾值。DateTime中可表示的最大日期为9999年的12月31日。相应的FILETIME值为26504677439999999。负的FILETIME值无法转换,尝试使用DateTime.FromFileTime()时会出现异常


从根本上解决这个问题,生成数据库数据的程序中有一个bug。签名扩展FILETIME.dwLowDateTime时可能出错。您已经在MSDN论坛的帖子中看到了这一点。

我最近遇到了同样的问题。将FILETIME转换为DateTimeOffset时,我得到的是负值,导致FromFileTime方法引发异常

未处理的异常:System.ArgumentOutOfRangeException:不是有效的Win32 FileTime。

我发现我的错误在于转换。这是坏的代码行


long-time=(ft.dwHighDateTime-Darin,此方法不适用于-ve值。它引发以下异常:“不是有效的Win32 FileTime。参数名称:FileTime”关于在数据库中存储FILETIME,我无能为力,我们正在开发一些扩展SharePoint功能的产品,从中获取这些值的datbase表是SharePoint的,我们无法控制这些值的存储方式。因此,我需要一些解决方案,将此-ve值作为输入并返回相应的值rect datetime格式值。