如何制作一个前八个字节作为当前时间戳的字节数组?
Posted
技术标签:
【中文标题】如何制作一个前八个字节作为当前时间戳的字节数组?【英文标题】:How to make a byte array with first eight bytes as current timestamp? 【发布时间】:2016-11-01 18:24:32 【问题描述】:我正在制作一个预定义大小的字节数组,如下所示:
private byte[] newPayload()
byte[] payload = new byte[100];
Arrays.fill(payload, (byte) 1);
return payload;
现在我想在它前面的同一个字节数组中添加 8 个字节的当前时间戳。
long time = System.currentTimeMillis();
所以前 8 个字节将是当前时间戳,其余 92 个字节将与我现在所做的相同。
【问题讨论】:
【参考方案1】:您可以使用 ByteBuffer 将long
转换为byte[]
。您也可以使用System.arraycopy
将此byte[]
复制到邮件数组。请参考以下代码。
ByteBuffer buffer = ByteBuffer.allocate(Long.SIZE / Byte.SIZE);
buffer.putLong(time);
byte[] timeBytes = buffer.array();
System.arraycopy(timeBytes, 0, payload, 0, timeBytes.length);
【讨论】:
看起来,我找不到 Long 类的 BYTES?我只看到大小? 你可以试试(Long.SIZE / Byte.SIZE
)
另外假设如果我有这个新的字节数组,现在我如何从有效负载字节数组中提取前 8 个字节并将它们转换为 long 并打印出来?
希望这会有所帮助.. ***.com/questions/4485128/…
是的,但我将如何仅从字节数组中提取前八个字节?以上是关于如何制作一个前八个字节作为当前时间戳的字节数组?的主要内容,如果未能解决你的问题,请参考以下文章