Java:十六进制格式的EpochSecond

时间:2017-06-09 17:23:07

标签: java binary numbers hex byte

我正在使用期望EpochSecond的Web服务,其中包含8个十六进制字节的字符串。

我正在使用它:

Instant now = Instant.now();    
Long.toHexString(now.getEpochSecond());

这给我提供了类似 593ad84b 的内容,Web Service向我返回了无效数据,但我会说格式是正确的,对吗?

1 个答案:

答案 0 :(得分:3)

您对“字节”一词的使用令人困惑。这可能意味着:

  • “一个十六进制数字重复八个字节的字符串”,它需要十六个十六进制数字(因为需要两个十六进制数字来表示一个字节值)
  • “包含8个ASCII字符的字符串”(字符串本身在大多数编码中占用8个字节)

根据您引用的示例,我怀疑这是第一种情况,这意味着您的String必须包含十六位十六进制数字:

Instant now = Instant.now();
String seconds = String.format("%016x", now.getEpochSecond());