java - 将 Unix 时间中的日期时间作为字节数组获取,Java 的大小为 8 个字节
问题描述
我知道我可以像这样以 4 个字节获取它:
int unixTime = (int)(System.currentTimeMillis() / 1000);
byte[] productionDate = new byte[]{
(byte) (unixTime >> 24),
(byte) (unixTime >> 16),
(byte) (unixTime >> 8),
(byte) unixTime
};
但是有没有办法使用移位将它变成 8 个字节?
解决方案
当然,只需阅读为已签名的long
.
long unixTime = System.currentTimeMillis() / 1000L;
byte[] bytes = new byte[] {
(byte) (unixTime >> 56),
(byte) (unixTime >> 48),
(byte) (unixTime >> 40),
(byte) (unixTime >> 32),
(byte) (unixTime >> 24),
(byte) (unixTime >> 16),
(byte) (unixTime >> 8),
(byte) unixTime
};
或者,使用 NIO ByteBuffer
ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES)
.putLong(unixTime);
byte[] bytes = buffer.array();
推荐阅读
- node.js - Dialogflow v2 有简单的 HTTP API 吗?
- swift - 确保电话号码 UITextField 具有“+”前缀
- python - 将变量传递给 google-drive-api files().list 函数中的查询
- django - NameError:名称“CityForm”未定义
- asp.net-core - Web Farm 上的 ASP.NET Core 数据保护
- c++ - 如何在焦点链中添加复选框(QCheckBox)
- node.js - 您如何在 Heroku 应用程序上快速工作?
- sap-successfactors - SuccessFactors 的身份验证并获取所有实体
- rust - 为什么动态闭包(作为特征对象的闭包)在放置 Rc 后变得不可用
>? - xaml - 将第一个元素设置为 x:Null(一个 Xaml 问题)