我收到以下长1389967092作为时间戳。这应该代表......
格林尼治标准时间:星期五,2014年1月17日13:58:12 GMTOR
我的时区:2014年1月17日下午2:58:12 GMT + 1
但是我在GMT + 1,但我想要展示的时间是GMT代表。我正在尝试以下方法:
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(timeStamp);
Date date = cal.getTime();
Log.d(Point.class.getSimpleName(), date.getHours() + ":" + date.getMinutes());
但这打印12:58
我做错了什么?
编辑 - 对答案的回应
我正在使用它的代码打印1969-12-13 10:54:48
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(1389967092*1000);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Log.d(Point.class.getSimpleName(), sdf.format(calendar.getTime));
答案 0 :(得分:2)
默认Calendar.getInstance
会根据您设备的时区返回时间。但是,您可以请求不同的时区:
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
为了根据不同的时区打印当前时间,您可以使用SimpleDateFormat
。例如:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Log.d(TAG, sdf.format(new Date()));