从.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;
PS。这个概念甚至会工作......或者是以总毫秒的形式存储的日期?     
已邀请:
您可以使用任何您想要的格式,只要您同时执行序列化和放大。反序列化:)但是,由于常见的表示是'Ticks',为什么不去那? 序列化就是关于节约和保护。恢复,只要你可以恢复你保存的任何东西,序列化工作:)     
使用Int64构造函数,但是应该注意DateTimeKind参数。如果序列化DateTimeKind.Utc并反序列化DateTimeKind.Unspecified或DateTimeKind.Local值,则可能会遇到麻烦。 注意:可能最安全的做法是使用ToUniversalTime()序列化DateTime值,并始终使用DateTimeKind.Utc构造返回值。     

要回复问题请先登录注册