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

问题描述

试试这个

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格式显示年份格式。

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”