溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

日期型數(shù)據(jù)怎么轉(zhuǎn)換成C#長(zhǎng)整型數(shù)據(jù)

發(fā)布時(shí)間:2021-07-16 10:25:51 來(lái)源:億速云 閱讀:299 作者:chen 欄目:編程語(yǔ)言

本篇內(nèi)容介紹了“日期型數(shù)據(jù)怎么轉(zhuǎn)換成C#長(zhǎng)整型數(shù)據(jù)”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

C#語(yǔ)言還是比較常見的東西,這里我們主要介紹日期型數(shù)據(jù)轉(zhuǎn)換成C#長(zhǎng)整型數(shù)據(jù),包括介紹DateTime 的構(gòu)造函數(shù)等方面。

日期型數(shù)據(jù)轉(zhuǎn)換成C#長(zhǎng)整型數(shù)據(jù)

為什么要將日期型數(shù)據(jù)轉(zhuǎn)換成C#長(zhǎng)整型數(shù)據(jù)呢?原因很多,但就我個(gè)人來(lái)說(shuō),經(jīng)常將它用于數(shù)據(jù)庫(kù)的日期存儲(chǔ)。由于各種數(shù)據(jù)庫(kù)對(duì)日期型的定義和處理是不一樣的,各種語(yǔ)言對(duì)日期型數(shù)據(jù)的定義的處理也各不相同,因?yàn)椋覍幵笇⑷掌谛蛿?shù)據(jù)轉(zhuǎn)換成長(zhǎng)整型數(shù)據(jù)再保存到數(shù)據(jù)庫(kù)中。雖然也可以使用字符串來(lái)保存,但使用字符串也會(huì)涉及到許多問題,如區(qū)域等問題,而且,它需要比保存C#長(zhǎng)整型數(shù)據(jù)更多的空間。

日期型數(shù)據(jù),在 C# 中的參與運(yùn)算的時(shí)候,應(yīng)該也是轉(zhuǎn)換為長(zhǎng)整型數(shù)據(jù)來(lái)運(yùn)算的。它的長(zhǎng)整型值是自 0001 年 1 月 1 日午夜 12:00 以來(lái)所經(jīng)過(guò)時(shí)間以 100 毫微秒為間隔表示時(shí)的數(shù)字。這個(gè)數(shù)在 C# 的 DateTime 中被稱為 Ticks(刻度)。DateTime 類型有一個(gè)名為 Ticks 的長(zhǎng)整型只讀屬性,就保存著這個(gè)值。如此,要從一個(gè) DataTime 型數(shù)據(jù)得到 long 型值就非常簡(jiǎn)單了,只需要讀出 DataTime 對(duì)象的 Ticks 值即可,如:

long longDate = DateTime.Now.Ticks;

DateTime 的構(gòu)造函數(shù)中也提供了相應(yīng)的,從長(zhǎng)整型數(shù)據(jù)構(gòu)造 DateTime 型數(shù)據(jù)的函數(shù):DateTime(long)。如:

DateTime theDate = new DateTime(longDate);

但這樣對(duì)于很多 VB6 程序員來(lái)說(shuō),是給他們出了一道難題,因?yàn)?VB6 中的日期型數(shù)據(jù)內(nèi)部是以 Double 型表示的,將其轉(zhuǎn)換為長(zhǎng)整型后得到的僅僅是日期,而沒有時(shí)間。如何協(xié)調(diào)這兩種日期類型呢?

System.DateTime 提供了 double ToOADate() 和 static DateTime FromOADate(double) 兩個(gè)函數(shù)來(lái)解決這個(gè)問題。前者將當(dāng)前對(duì)象按原來(lái)的 double 值輸出,后者則從一個(gè) double 值獲得一個(gè) System.DateTime 對(duì)象。舉例如下:

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");  }

運(yùn)行結(jié)果:

Double value of now: 37494.661541713  DateTime from double value: 2002-8-26 15:52:37

“日期型數(shù)據(jù)怎么轉(zhuǎn)換成C#長(zhǎng)整型數(shù)據(jù)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI