在Unix时间中获取日期时间为字节数组,使用Java时大小为4个字节

Fig*_*gör 3 java date bytearray unix-timestamp

如何将unix时间的日期时间作为字节数组获取,该数组应填充Java中的4个字节空间?

像这样的东西:

byte[] productionDate = new byte[] { (byte) 0xC8, (byte) 0x34,
                    (byte) 0x94, 0x54 };
Run Code Online (Sandbox Code Playgroud)

Jes*_*per 10

第一:Unix时间是一个数字的因为01-01-1970 00:00:00 UTC.Java System.currentTimeMillis()返回自01-01-1970 00:00:00 UTC以来的毫秒数.所以你必须除以1000来获得Unix时间:

int unixTime = (int)(System.currentTimeMillis() / 1000);
Run Code Online (Sandbox Code Playgroud)

然后你必须得到intout中的四个字节.您可以使用位移运算符 >>(右移)来实现.我假设你想要大端序:

byte[] productionDate = new byte[]{
        (byte) (unixTime >> 24),
        (byte) (unixTime >> 16),
        (byte) (unixTime >> 8),
        (byte) unixTime

};
Run Code Online (Sandbox Code Playgroud)