一段求时间的JAVA源码,求大家帮我看看出了什么问题。

一下是我参考教材写的一个类的源代码。publicclassComputeTime{privatelongtime;privateintsecond;privateinth... 一下是我参考教材写的一个类的源代码。
public class ComputeTime {
private long time;
private int second;
private int hour;
private int minute;

ComputeTime(long timeInput){
this.time = timeInput;
}

public void compute(){
long totalMilliSeconds = this.time;
long totalSeconds = totalMilliSeconds / 1000;
long currentSecond = totalSeconds %60;
long totalMinutes = totalSeconds / 60;
long currentMinute = totalMinutes % 60;
long totalHours = totalMinutes / 60;
long currentHour = totalHours % 24;
this.hour = (int)currentHour;
this.minute = (int)currentMinute;
this.second = (int)currentSecond;
}//这里可能冗余了,不再改了。

public void printTime(){
System.out.println("It's now " + hour + ":" + minute + ":" + second + " GMT.");
}
}

我用UNIX时间戳作为构造方法的实参,但是总是无法得到正确的时间。求大佬帮忙答疑解惑,万分感谢。
这个代码是利用UNIX时间戳求现在时刻的
展开
 我来答
又在厕所弹钢琴
2017-08-09 · TA获得超过169个赞
知道小有建树答主
回答量:124
采纳率:0%
帮助的人:84.8万
展开全部
UNIX timestamp 这个时间 是从 1970年1月1日 开始的累计秒数
String date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date(Unix timestamp * 1000));
你没有写错,时间和你现在的对不上是因为一个是GMT时间一个是CST时间
追问
也就是说时区对不上了?
不要12343
2017-08-09 · TA获得超过142个赞
知道答主
回答量:48
采纳率:85%
帮助的人:25.8万
展开全部
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。上面代码算出来的就是格林威治的时间,北京时间要+8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式