0

我有一个问题,我有一个来自 Web 服务的纪元日期,我想以 2012 年 7 月 12 日的人类可读格式显示它,但我的代码始终显示 16/01/1970 任何纪元日期。我不知道我错在哪里或如何在 Java 中将 Epoch Date 转换为 Date。请向我建议任何有关相同的解决方案。

代码:

Date.setText(new java.text.SimpleDateFormat("dd/MM/yyyy").format(new java.util.Date(Long.parseLong(newsDetail.getDate_Posted()))));

提前致谢。

4

1 回答 1

0

我有一种预感,即Long.parseLong(newsDetail.getDate_Posted())从 epoch 返回 seconds 而不是milliseconds

如果您总是看到 16/01/1970,那么Long.parseLong(newsDetail.getDate_Posted())它介于 1296000000 和 1382400000 之间。事实证明,如果我将这些最小和最大数字乘以 1000,我会看到26/1/201121/10/2013之间的日期。我猜你期待的日期在这个新范围内。

尝试使用:

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
date.setText(sdf.format(new Date(Long.parseLong(newsDetail.getDate_Posted()) * 1000)));
于 2012-07-12T21:38:40.927 回答