无法在Android中解析Unix时间戳

时间:2012-05-09 15:12:34

标签: java android unix-timestamp

我在解析使用JSON从服务器返回的时间戳字符串时遇到了一些麻烦。我使用以下代码从HashMap中提取时间戳并将其显示在Log:

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Long time = Long.parseLong(event.get("time"));
final Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(time);
String event_date = sdf.format(cal.getTime());
Log.v("Date", event_date);

但是对于我传递给这个方法的每个时间戳它会带回1970年1月16日的日期,我试图解析的时间戳的一个例子是1336773600,它应该对应于2012年5月11日。我可以'看看我在这里做错了什么,但显然我是。有什么建议吗?

2 个答案:

答案 0 :(得分:8)

Unix时间戳是自纪元以来的秒数。 Java使用了自纪元以来的毫秒数。

将unix时间戳乘以1000以进行调整。

答案 1 :(得分:2)

尝试:

cal.setTimeInMillis(time * 1000);

将秒转换为毫秒。