我尝试将其转换为字节数组,但最小字节数组为5.但是我只有4个字节用于此日期时间,以字节形式存储在我的字节数组中.
代码是这样的:
byte[] b = new byte[] {10,12,12,12};
DATETIME t=datetime.now();
array.copy(BitConverter.GetBytes(t.ticks),1,b,4);
Run Code Online (Sandbox Code Playgroud)
但是getbytes(t.ticks)返回8个字节的数组.我不知何故希望它只转换为4个字节.
您可以使用32位unix时间.但要注意2038年的问题.您可以在下面找到示例解决方案 其中以4个字节存储日期时间.
byte[] b = new byte[] { 10, 12, 12, 12 };
DateTime now = DateTime.Now;
var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
var csMinDate = DateTime.MinValue;
TimeSpan tsEpoch = now - epoch;
int passedSecods = (int)tsEpoch.TotalSeconds;
byte[] copyBytes = BitConverter.GetBytes(passedSecods);
Array.Copy(copyBytes, 0, b, 0, 4);
DateTime tCompare = epoch.AddSeconds(BitConverter.ToInt32(b, 0));
Run Code Online (Sandbox Code Playgroud)
Fer*_*tol -1
尝试使用以下代码:
byte[] b = new byte[] { 10, 12, 12, 12 };
DateTime t = DateTime.Now;
Array.Copy(BitConverter.GetBytes(t.Ticks), 0, b, 0, 4);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13206 次 |
最近记录: |