在Java中将纪元时间从Micro转换为毫秒

时间:2017-03-22 22:58:07

标签: java

我有java程序,它在Epoch中以微秒为单位接收时间,如下所示

String time  = "1487809901812";

我需要将此时间从微秒转换为毫秒,然后再发送到其他系统。

我希望最终值与

相似
String final  = "1487809901.812";  //Note DOT here

我可以通过在最后三位之前放置点来进行一些字符串操作来轻松完成。但是想知道还有其他办法吗?

2 个答案:

答案 0 :(得分:4)

您可以将其转换为double,将其除以1000并使用String.format对其进行格式化,例如:

String time  = "1487809901812";
String milli = String.format("%.3f", Double.parseDouble(time)/1000.0);
System.out.println(milli);

答案 1 :(得分:1)

String time  = "1487809901812";
time = new BigDecimal(Double.parseDouble(time)/1000).setScale(3, 4).toString();
System.out.println(time);
//must be "1487809901.812";