java 把纳秒级别时间戳转换成精度为6的时间
时间: 2023-06-30 20:03:45 浏览: 108
可以使用`java.time`包中的`LocalDateTime`和`DateTimeFormatter`类来实现纳秒级别时间戳到精度为6的时间的转换。具体步骤如下:
1. 将纳秒级别时间戳转换成`Instant`对象:
```java
Instant instant = Instant.ofEpochSecond(seconds, nanos);
```
其中,`seconds`表示秒数,`nanos`表示纳秒数。
2. 将`Instant`对象转换成`LocalDateTime`对象:
```java
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
```
3. 格式化`LocalDateTime`对象:
```java
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
String formattedDateTime = localDateTime.format(formatter);
```
其中,`"yyyy-MM-dd HH:mm:ss.SSSSSS"`表示时间格式,其中`"SSSSSS"`表示精度为6的微秒级别时间。
完整代码示例:
```java
long nanos = 123456789;
long seconds = 1632411568;
Instant instant = Instant.ofEpochSecond(seconds, nanos);
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
String formattedDateTime = localDateTime.format(formatter);
System.out.println(formattedDateTime);
```
输出结果为:
```
2021-09-23 22:46:08.123457
```
阅读全文