羊皮纸论坛目录 / 程式设计 / 网页/网站程式 / JavaScript /

Java 一段时间代码 28800000 的问题?

发表新主题
随机主题
上个主题
下个主题
|
Java 一段时间代码 28800000 的问题?

//显示时间
Date d=new Date(System.currentTimeMillis()-startTime.getTime()-28800000);
这句话啥意思?为什麽-28800000?

下面是全部代码∶
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;
import java.util.Date;
import java.text.SimpleDateFormat;

public class StopWatch extends JFrame {
JButton btnStart, btnStop;
JLabel label;
Timer timer;

public StopWatch() {
label = new JLabel("0000:00.000");
btnStart = new JButton("start");
btnStop = new JButton("stop");
final int delay = 100;
final Date startTime = new Date();
final SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.S");
final Action taskPerformer = new AbstractAction() {
public void actionPerformed(ActionEvent evt) {
// 显示时间
Date d = new Date(System.currentTimeMillis()
- startTime.getTime() - 28800000);
System.out.println(d);
label.setText(sdf.format(d));
label.repaint();
}
};
btnStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
startTime.setTime(new Date().getTime());
timer = new Timer(delay, taskPerformer);
timer.start();
}
});
btnStop.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
if (timer != null && timer.isRunning())
timer.stop();
}
});

Container c = getContentPane();
c.add(label, BorderLayout.NORTH);
c.add(btnStart, BorderLayout.CENTER);
c.add(btnStop, BorderLayout.SOUTH);
}

public static void main(String[] args) {

javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});

}

private static void createAndShowGUI() {
StopWatch window = new StopWatch();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.pack();
window.setVisible(true);
}
}

  • 关键字 : public, timer, import, label, window, startTime, final, btnStop, btnStart, StopWatch, ActionEvent, getTime, actionPerformed, System, JButton, BorderLayout, ActionListener, 28800000, 显示时间, taskPerformer
0 0
2009-06-04T11:59:13+0000

雪彥 :

8 个小时的毫秒数
至於为什麽要这样做 我也不是很清楚了
感觉是 1970 年 1 月 1 日 8 点
减掉 8 个小时吧
呵呵
0 0
2009-06-04T17:30:29+0000

魚戀秋波 Neil Y.K. :

28800000 是指秒数,相当於 8 个小时,而减掉 8 个小时的用意是因为我们所在的地理区域是中原的时间,而台湾地区是格林威治时间再加上 8 个小时。

这个机制一般运用在 Unix like 系统上,像是 Linux,因为 Unix like 所使用的 timestamp 是以格林威治时间记录,所以当网页从系统传出时间给 Java 时,一般情况就必须减 8 个小时才是正常的时间。

如果网页平台是 Window 视窗系统,就不必减 8 个小时,因为两者运作机制不同,要注意一下唷。

0 0
2009-06-05T01:34:03+0000


  • 当您未登入羊皮纸时,可以利用脸书 Facebook 登入来发表回响。若使用羊皮纸会员身份发表回响则可获得经验值及虚拟金币,用来参加羊皮纸推出的活动。
发表回响
 
验证字串