羊皮纸 服务
       
       
      分享
       
      羊皮纸论坛

      羊皮纸论坛

      分享让知识传播,阅读让心灵成长, 创作让文化传承,让我们共同努力。
      • 禁止广告文
      • 知识传播
      • 阅读
      • 心灵成长
      • 创作
      • 文化传承
      羊皮纸论坛目录 / 程式设计 / 网页/网站程式 / 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 登入来发表回响。若使用羊皮纸会员身份发表回响则可获得经验值及虚拟金币,用来参加羊皮纸推出的活动。
      发表回响
       
      验证字串

      Facebook 粉丝专页

      QRCode 条码 & APP 连结

      说明
      本页网址

      在相关服务标签中,『扫描条码,在行动装置』或是『点击连结按钮,在本装置』中开启网页或是 APP 相关操作。
      QRCode