[英]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值。 它包含Kind
和Ticks
組件,這不是數據庫時間戳包含的內容。
使用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.