从.net data . tobinary()中提取数据



我需要读取自定义序列化的二进制数据,使用BinaryWriter类编写。为了存储日期,最初的设计者使用了BinaryWriter.Write( Data.ToBinary() );

这篇文章提到了ToBinary函数是如何工作的;但我需要的是,构建代码,将模拟方法ToBinary()和FromBinary()在其他编程语言。

谁能看看下面的伪代码,给我一个真正的偏移位计数的想法?

long i = DateTime.Now.ToBinary();
// will likely need to add code here to "condition" the value
int yr = (i >> 48) & 0x7fff;
int mo = (i >> 44) & 0xf;
int day = (i >> 36) & 0xff;
int hr = (i >> 28) & 0xff;
int min = (i >> 20) & 0xff;
int sec = (i >> 12) & 0xff;
int ms = i & 0xfff;

p。这个概念是否可行,或者日期是否以总毫秒的形式存储?

你可以使用任何你想要的格式,只要你做了序列化&但是既然一个常见的表示是"Ticks",为什么不这样做呢?序列化就是为了节省& &;恢复,只要您可以恢复您保存的任何内容,序列化工作:)

使用Int64构造函数,但是您应该注意DateTimeKind参数。如果序列化DateTimeKind,可能会遇到麻烦。Utc和反序列化一个DateTimeKind。未指定DateTimeKind。当地的价值。

注意:可能最安全的做法是使用 tuniversaltime ()序列化您的DateTime值,并始终使用DateTimeKind.Utc.

构造返回值。

相关内容

  • 没有找到相关文章

最新更新