簡體   English   中英

如何在C#中將byte []轉換為datetime?

[英]How to convert a byte[] into datetime in C#?

我在數據庫中有一個TimeStamp類型的字段,它在c#代碼中以byte []轉換,我需要將其轉換為DateTime值。 所以我想從一個字節數組轉換為DateTime。

已經使用過這段代碼:

byte[] byteValue = someValue;
long longVar = BitConverter.ToInt64(byteValue);
DateTime dateTimeVar = DateTime.FromBinary(longVar);

這個可以嗎?

SQL Server中的時間戳列(現在稱為rowversion)不能轉換為日期時間值 - 它純粹是服務器分配的單調遞增值。

不,這不正確。

FromBinary方法采用使用ToBinary方法創建的long值。 它包含KindTicks組件,這不是數據庫時間戳包含的內容。

使用BitConverter獲取長值是正確的,但是您必須獲取時間戳的時間原點並將長值添加為正確的單位。 假設它是來自MySQL數據庫的時間戳,IIRC是從1980-01-01開始的毫秒數:

long longVar = BitConverter.ToInt64(byteValue, 0);
DateTime dateTimeVar = new DateTime(1980,1,1).AddMilliseconds(longVar);

暫無
暫無

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

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