小编典典

Java将19位Unix时间戳转换为可读日期

java

我正在尝试将19位Unix时间戳(例如,1558439504711000000一个五分之五)转换为可读的日期/时间格式。我的时间戳以6个零结尾,这表明时间以纳秒为单位。

我遇到了一些例子,其中人们使用了我不需要的时区。另一个示例使用ofEpochSecond像这样:

Instant instant = Instant.ofEpochSecond(seconds, nanos);

但是我不确定是否需要使用EpochSecond。

下面的代码提供了我最新的实现方法:

String timeStamp = "1558439504711000000";
long unixNanoSeconds = Long.parseLong(timeStamp);
Date date = new java.util.Date(timeStamp*1000L); 
// My preferred date format
SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd-MM-yyyy HH:mm:ss");                    
String formattedDate = sdf.format(date);
System.out.println("The timestamp in your preferred format is: " +  formattedDate);

但是我得到的输出是这样的:

// The timestamp in your preferred format is: 11-12-49386951 11:43:20

它不以例如2019格式显示年份格式。


阅读 1173

收藏
2020-11-30

共1个答案

小编典典

试试这个

Date date = new java.util.Date(timeStamp/1000000);

而不是乘以 1000 ,除以 1000000

2020-11-30