我尝试将它转换为字节数组,但最小的字节数组长度是5。
但我的字节数组中只有4个字节用于存储此日期时间作为字节。
代码如下:
代码如下:
byte[] b = new byte[] {10,12,12,12};
DATETIME t=datetime.now();
array.copy(BitConverter.GetBytes(t.ticks),1,b,4);
但是getbytes(t.ticks)
返回8个字节的数组。我希望它只转换为4个字节。
DateTime
支持以100ns为步长的1年至9999年的日期。这需要8个字节。 - CodesInChaosDateTime
压缩为4个字节而不牺牲某些东西。它被设计为8个字节,而不是4个字节。这是一个数学上的限制,你无法绕过它。这就像尝试在一个位中放入4个不同的值。例如,如果你将精度降低到1秒,你会得到约130年的时间范围,这是unix时间戳所选择的权衡。 - CodesInChaos