您好,登錄后才能下訂單哦!
本篇內容介紹了“日期型數據怎么轉換成C#長整型數據”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
C#語言還是比較常見的東西,這里我們主要介紹日期型數據轉換成C#長整型數據,包括介紹DateTime 的構造函數等方面。
日期型數據轉換成C#長整型數據
為什么要將日期型數據轉換成C#長整型數據呢?原因很多,但就我個人來說,經常將它用于數據庫的日期存儲。由于各種數據庫對日期型的定義和處理是不一樣的,各種語言對日期型數據的定義的處理也各不相同,因為,我寧愿將日期型數據轉換成長整型數據再保存到數據庫中。雖然也可以使用字符串來保存,但使用字符串也會涉及到許多問題,如區域等問題,而且,它需要比保存C#長整型數據更多的空間。
日期型數據,在 C# 中的參與運算的時候,應該也是轉換為長整型數據來運算的。它的長整型值是自 0001 年 1 月 1 日午夜 12:00 以來所經過時間以 100 毫微秒為間隔表示時的數字。這個數在 C# 的 DateTime 中被稱為 Ticks(刻度)。DateTime 類型有一個名為 Ticks 的長整型只讀屬性,就保存著這個值。如此,要從一個 DataTime 型數據得到 long 型值就非常簡單了,只需要讀出 DataTime 對象的 Ticks 值即可,如:
long longDate = DateTime.Now.Ticks;
DateTime 的構造函數中也提供了相應的,從長整型數據構造 DateTime 型數據的函數:DateTime(long)。如:
DateTime theDate = new DateTime(longDate);
但這樣對于很多 VB6 程序員來說,是給他們出了一道難題,因為 VB6 中的日期型數據內部是以 Double 型表示的,將其轉換為長整型后得到的僅僅是日期,而沒有時間。如何協調這兩種日期類型呢?
System.DateTime 提供了 double ToOADate() 和 static DateTime FromOADate(double) 兩個函數來解決這個問題。前者將當前對象按原來的 double 值輸出,后者則從一個 double 值獲得一個 System.DateTime 對象。舉例如下:
private void TestDateTimeLong() { double doubleDate = DateTime.Now.ToOADate(); DateTime theDate = DateTime.FromOADate(doubleDate); this.textBox1.Text = ""; this.textBox1.AppendText("Double value of now: " + doubleDate.ToString() + "\n"); this.textBox1.AppendText("DateTime from double value: " + theDate.ToString() + "\n"); }
運行結果:
Double value of now: 37494.661541713 DateTime from double value: 2002-8-26 15:52:37
“日期型數據怎么轉換成C#長整型數據”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。