我正在尝试将19位Unix时间戳(例如,1558439504711000000一个五分之五)转换为可读的日期/时间格式。我的时间戳以6个零结尾,这表明时间以纳秒为单位。
1558439504711000000
我遇到了一些例子,其中人们使用了我不需要的时区。另一个示例使用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);
而不是乘以 1000 ,除以 1000000