以字节数组的形式获取unix时间中的日期时间,java的字节数组大小为8字节

rwqw0loc  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(458)

我知道我可以用4个字节得到它,就像这样:

  1. int unixTime = (int)(System.currentTimeMillis() / 1000);
  2. byte[] productionDate = new byte[]{
  3. (byte) (unixTime >> 24),
  4. (byte) (unixTime >> 16),
  5. (byte) (unixTime >> 8),
  6. (byte) unixTime
  7. };

但是有没有一种方法可以让它在8字节内使用移位?

gcxthw6b

gcxthw6b1#

当然,只要读一读签名 long .

  1. long unixTime = System.currentTimeMillis() / 1000L;
  2. byte[] bytes = new byte[] {
  3. (byte) (unixTime >> 56),
  4. (byte) (unixTime >> 48),
  5. (byte) (unixTime >> 40),
  6. (byte) (unixTime >> 32),
  7. (byte) (unixTime >> 24),
  8. (byte) (unixTime >> 16),
  9. (byte) (unixTime >> 8),
  10. (byte) unixTime
  11. };

或者,使用nio bytebuffer

  1. ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES)
  2. .putLong(unixTime);
  3. byte[] bytes = buffer.array();
展开查看全部

相关问题