我正在使用一个Web Service,期望在8个十六进制字节的字符串中使用EpochSecond。
我正在使用这个:
Instant now = Instant.now();
Long.toHexString(now.getEpochSecond());
这给了我类似593ad84b这样的东西,Web Service向我返回了无效数据,但是我会说格式是正确的,对吧?
最佳答案
您对“字节”一词的使用令人困惑。这可能意味着:
“一个十六进制数字代表八个字节的字符串”,它将需要十六个十六进制数字(因为需要两个十六进制数字来表示一个字节值)
“包含八个ASCII字符的字符串”(字符串本身在大多数编码中占用八个字节)
根据您引用的示例,我怀疑这是第一种情况,这意味着您的字符串必须包含16个十六进制数字:
Instant now = Instant.now();
String seconds = String.format("%016x", now.getEpochSecond());