问题描述
试试这个
Date date = new java.util.Date(timeStamp/1000000);
而不是乘以 ,除以
解决方法
我正在尝试将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格式显示年份格式。