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

我在数据库中有一个类型为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);

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...