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

我正在尝试将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格式显示年份格式。

回答:

试试这个

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

而不是乘以 ,除以

以上是 Java将19位Unix时间戳转换为可读日期 的全部内容, 来源链接: utcz.com/qa/428869.html

回到顶部