簡體   English   中英

如何將DateTime值轉換為double?

[英]How can I convert a DateTime value to a double?

如何將DateTime值轉換為double

如果,通過double表示OLE自動化日期,則可以使用DateTime.ToOADate() 從鏈接的MSDN主題:

OLE自動化日期實現為浮點數,其值為1899年12月30日午夜的天數。例如,1899年12月31日午夜由1.0表示; 1900年1月1日上午6點由2.25表示; 1899年12月29日午夜以-1.0表示; 1899年12月29日上午6點用-1.25表示。

基本OLE自動化日期是1899年12月30日午夜。最大OLE自動化日期與MaxValue相同,即9999年12月31日的最后一刻。

如果您正在談論其他日期表示也可以存儲在double ,請指定......

DateTime.ToOADate()轉換為C#中的雙OLE自動化日期

是,OLE自動化日期啟用Datetime轉換為十進制/雙Datetime類型。 但是,十進制/雙Datetime的結果/值不是精確的系統Datetime

例如,

Decimal dateIndDec = Convert.Decimal (Datetim.Today.ToOADate());

不等於MS SQL

 Select Convert (Decimal (10, 9), GetDate())

結論:OLE自動化日期不是真正的系統datetime信息...無法使用它。

我一直在搜索C#中的轉換Datetime值到十進制值,沒有任何運氣。

您可以計算DateTime和DateTime.MinValue之間的差異,然后獲取任何Total*值。

var difference = DateTime.Now - DateTime.MinValue;
Console.WriteLine(difference.TotalMinutes);
Console.WriteLine(difference.TotalMilliseconds);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM