Unix epoch time to Java Date object

2022-08-31 10:27:11

我有一个包含UNIX纪元时间的字符串,我需要将其转换为Java Date对象。

String date = "1081157732";
DateFormat df = new SimpleDateFormat(""); // This line
try {
  Date expiry = df.parse(date);
 } catch (ParseException ex) {
  ex.getStackTrace();
}

标记的行是我遇到问题的地方。我无法弄清楚 SimpleDateFormat() 的参数应该是什么,或者即使我应该使用 SimpleDateFormat()。


答案 1

怎么样, 只是:

Date expiry = new Date(Long.parseLong(date));

编辑:根据rde6173的答案,并仔细查看问题中指定的输入,“1081157732”似乎是一个基于秒的epoch值,因此您需要将parseLong()的long乘以1000以转换为毫秒,这是Java的Date构造函数使用的,所以:

Date expiry = new Date(Long.parseLong(date) * 1000);

答案 2

Epoch 是自 1970 年 1 月 1 日以来的数。

所以:

String epochString = "1081157732";
long epoch = Long.parseLong( epochString );
Date expiry = new Date( epoch * 1000 );

欲了解更多信息:http://www.epochconverter.com/