论坛目录 / 程式设计 / 网页/网站程式 / 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, swing
    00
    2009-06-04T11:59:13+0000
    ???8 个小时的毫秒数
    至於为什麽要这样做 我也不是很清楚了
    感觉是 1970 年 1 月 1 日 8 点
    减掉 8 个小时吧
    呵呵
    00
    2009-06-04T17:30:29+0000
    ???28800000 是指秒数,相当於 8 个小时,而减掉 8 个小时的用意是因为我们所在的地理区域是中原的时间,而台湾地区是格林威治时间再加上 8 个小时。

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

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

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


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