2009-12-14 62 views
3

我們有一個來自第三方軟件的數據庫,它將LastModifiedDate字段存儲爲WINDOWS文件時間。 我們需要將它轉換爲.NET DateTime格式,並且它具有-ve值。將Windows FILTIME值轉換爲.NET DateTime

.NET的DateTime.FromFileTimeUtc方法將適用於+ ve文件時間值btu爲-ve值,它將不起作用。

如何將-ve filttime值轉換爲DateTime格式? 樣品valules: -ve值:-9094325347534722713 +已經值:8872694038044633872

回答

5
+0

Darin,這種方法不適用於-ve值。它引發以下異常:「不是有效的Win32文件時間。」 參數名稱:fileTime「 –

3

你是從數據庫中獲取垃圾值。日期時間中可表示的最大日期爲年份9999的12月31日。對應的FILETIME值爲2650467743999999999.否定的FILETIME值無法轉換,當您嘗試使用DateTime.FromFileTime()時會得到異常。

解決這個問題的根源,生成dbase數據的程序中存在一個錯誤。在簽名擴展FILETIME.dwLowDateTime時可能是一個錯誤。您已經在MSDN論壇主題中看到了這一點。

+0

沒有什麼我可以做的關於在數據庫中存儲FILETIME,我們正在研究一些產品,擴展SharePoint功能和從哪裏得到的datbase表這些值是SharePoint的,我們沒有控制如何存儲這些值。所以,我需要一些解決方案,它將-ve值作爲輸入並返回正確的日期時間格式值。 –