我在解析使用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日。我可以'看看我在这里做错了什么,但显然我是。有什么建议吗?
答案 0 :(得分:8)
Unix时间戳是自纪元以来的秒数。 Java使用了自纪元以来的毫秒数。
将unix时间戳乘以1000以进行调整。
答案 1 :(得分:2)
尝试:
cal.setTimeInMillis(time * 1000);
将秒转换为毫秒。