Java中日历的字符串时间戳?

Joa*_*rom 8 java android timestamp calendar date

一个简单的问题,我无法找到答案.我有一个字符串,它是一个时间戳,我想把它变成一个日历对象,所以我可以在我的Android应用程序中显示它.

到目前为止,我所拥有的代码显示了1970年代的一切:s.

String timestamp = parameter.fieldParameterStringValue;
timestampLong = Long.parseLong(timestamp);
Date d = new Date(timestampLong);
Calendar c = Calendar.getInstance();
c.setTime(d);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int date = c.get(Calendar.DATE);

dateTextView.setText(year + "-" + month + 1 + "-" + date);
Run Code Online (Sandbox Code Playgroud)

更新: 仅供参考,时间戳来自服务器是:1369148661,可能是错的?

Gom*_*ku7 23

您可以使用setTimeMillis:

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(timestampLong);
Run Code Online (Sandbox Code Playgroud)


Ale*_* C. 18

如果你在几秒钟内得到时间,你必须乘以1000:

String time = "1369148661";
long timestampLong = Long.parseLong(time)*1000;
Date d = new Date(timestampLong);
Calendar c = Calendar.getInstance();
c.setTime(d);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int date = c.get(Calendar.DATE);
System.out.println(year +"-"+month+"-"+date);
Run Code Online (Sandbox Code Playgroud)

输出:

2013年4月21日

小心,因为它的常量Calendar.MONTH从0开始.所以你应该为用户显示如下:

System.out.println(year +"-"+(month+1)+"-"+date);
Run Code Online (Sandbox Code Playgroud)