加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在C#中将byte []转换为datetime?

发布时间:2020-12-15 06:32:07 所属栏目:百科 来源:网络整理
导读:我在数据库中有一个类型为TimeStamp的字段,它在c#代码中以byte []转换,我需要将其转换为DateTime值. 所以我想从一个字节数组转换为DateTime. 已使用此代码: byte[] byteValue = someValue;long longVar = BitConverter.ToInt64(byteValue);DateTime dateTim
我在数据库中有一个类型为TimeStamp的字段,它在c#代码中以byte []转换,我需要将其转换为DateTime值.
所以我想从一个字节数组转换为DateTime.

已使用此代码:

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

这个可以吗?

解决方法

不,那不正确.

FromBinary方法使用使用ToBinary方法创建的长值.它包含Kind和Ticks组件,这不是数据库时间戳包含的内容.

使用BitConverter获取长值是正确的,但是您必须为时间戳取时间原点,并将长整型值添加为正确的单位.假设它是MySQL数据库的时间戳记,IIRC是从1980-01-01开始的毫秒数:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读