如何制作一个前八个字节作为当前时间戳的字节数组?

How to make a byte array with first eight bytes as current timestamp?

我正在制作一个具有预定义大小的字节数组,如下所示:

private byte[] newPayload() {
  byte[] payload = new byte[100];
  Arrays.fill(payload, (byte) 1);
  return payload;
}

现在我想在它前面的同一个字节数组中添加8个字节的当前时间戳。

long time = System.currentTimeMillis();

所以前八个字节将是当前时间戳,其余 92 个字节将与我现在正在做的相同。

您可以使用 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);