long a=date.getTime();
date是定义的Date类的实例,我想请问一下这个a得到的到底是一个什么东东啊,反正是好大的一个数,单位是什么啊,是ms???????如果我要把它转换成HH:MM:SS的这种格式应该怎么转换啊?(怎样转换才是重点,我把那个a的单位当成是ms然后转换以后得到的结果老是有错)

解决方案 »

  1.   

    //毫秒数
            
            DateFormat df = new SimpleDateFormat("hh:mm:ss");
            Calendar c = Calendar.getInstance();
            c.setTimeInMillis(new Date().getTime());
            
            String s = df.format(c.getTime());
      

  2.   

    long a=date.getTime(); a 是毫秒数,从某个时间点算起的。
    SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
    String time = sdf.format(new Date());
      

  3.   

    是某个时间到date的毫秒数这个时间好象是1970年1月1日0时0分0秒
      

  4.   

    我的意思是这样的:
    我定义了两个 Date类的实例date1和date2
    然后:long a1=date1.getTime();
          long a2=date2.getTime();
          long a3=a2-a1;
    我是想把这个a3表示成HH:mm:ss的形式,请问怎么做啊
    我是这样做的:
             long a3=(a1-a2)/1000;   
             long nDay=a3/(24*60*60);   
    long nHour=(a3-nDay*24*60*60)/(60*60);   
    long nMinute=(a3-nDay*24*60*60-nHour*60*60)/60;   
    long nSecond=a3-nDay*24*60*60-nHour*60*60-nMinute*60; 
             String time=nHour+":"+nMinute+":"+nSecond;
      

  5.   

    long a3=a2-a1;
    Date date = new Date(a3);
    SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
    String time = sdf.format(date);
    system.out.println(time);
      

  6.   

    public class ShowTime 
    {
    public static void main(String args[])
    {
    Show showtime=new Show();
    }
    }class Show extends JFrame implements ActionListener
     {  
    JTextField tf1,tf2,tf3;
        JButton b1,b2;
        JLabel l1,l2,l3;
        Date starttime;
        Date endtime;
        Date passtime;
        JFrame f=new JFrame("简易电脑开机计时器");
        Icon ic1,ic2,ic3;
        Font font;
        JMenuBar menubar;
        JMenu menu;
        JMenuItem help,quit,about1;
        JPanel p;
        JDialog about2;
        public static long a1,a2,a3;
        public Show()
        {
        menubar=new JMenuBar();
        menu= new JMenu("系统");
        menu.setMnemonic('A');//set shorcut
        about1=new JMenuItem("关于");
        about2=new JDialog(this);
        help=new JMenuItem("帮助");
        quit=new JMenuItem("退出");
        about1.setAccelerator(KeyStroke.getKeyStroke('A',Event.CTRL_MASK));
        quit.setAccelerator(KeyStroke.getKeyStroke('X',Event.CTRL_MASK));
        help.setAccelerator(KeyStroke.getKeyStroke('H',Event.CTRL_MASK));
        f.setJMenuBar(menubar);
        menubar.add(menu);
        menu.add(about1);
        menu.add(help);
        menu.addSeparator();
        menu.add(quit);
    JOptionPane.showMessageDialog(null,"~_~欢迎使用简易电脑开机计时器~_~","--欢迎信息--",1,new ImageIcon("E://kaiji.gif"));
        p=new JPanel();
        f.add(p);
        ic2=new ImageIcon("E://kaiji.gif");
        ic1=new ImageIcon("E://dangqian.gif");
        ic3=new ImageIcon("E://yikai.gif");
        font=new Font("SanSerif",Font.BOLD, 12);
        l1=new JLabel("开机时间");
        l1.setIcon(ic1);
        l1.setFont(font);
        l2=new JLabel("当前时间");
        l2.setIcon(ic2);
        l3=new JLabel("开机计时");
        l3.setIcon(ic3);
        Calendar cl1=Calendar.getInstance();
        SimpleDateFormat sdf1 = new SimpleDateFormat("HH:mm:ss");
    String starttime = sdf1.format(cl1.getTime());
    a1=cl1.getTimeInMillis();
        tf1=new JTextField(starttime,18);
        tf2=new JTextField("How are you...",18);
        tf3=new JTextField("How old are you..",18);
        //tf1.setEditable(false);
        //tf2.setEditable(false);
        //tf3.setEditable(false);
        b1=new JButton("显示当前时间");
        b2=new JButton("显示已开机时间");
        p.add(l1);
        p.add(tf1);
        p.add(l2);
        p.add(tf2);
        p.add(l3);
        p.add(tf3);
        p.add(b1);
        p.add(b2);
            b1.addActionListener(this);
        b2.addActionListener(this);
        about1.addActionListener(this);
        help.addActionListener(this);
        quit.addActionListener(this);     
        f.setSize(305,185);
        f.setVisible(true);
        f.setResizable(false);
        
      } public void actionPerformed (ActionEvent e) {
    if(e.getSource()==b1)
    {   
    Calendar cl2=Calendar.getInstance();
        SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm:ss");
    String nowtime = sdf2.format(cl2.getTime());
    a2=cl2.getTimeInMillis();
    tf2.setText(nowtime);
    }
       else if(e.getSource()==b2)
       {
                   a3=a2-a1;
       Date date=new Date(a3);
       SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
       String time = sdf.format(date);
       tf3.setText(time);
    }
       else if(e.getSource()==about1)
       {
       //JOptionPane.showMessageDialog(null,"谢谢你的使用,本程序由Tanp制作,有很多不足之处,敬请您提出宝贵的意见!","--关于--",1);
       about2.getContentPane().add(new JLabel("--电脑开机计时器V1.0--"));
                   about2.setModal(true);
                   about2.setSize(200,100);
                   about2.setVisible(true);
       }
       else if(e.getSource()==help)
       {   //Show s=new Show();
       JOptionPane.showMessageDialog(null,"无聊之作,有很多不足之处,敬请您提出宝贵的意见","--帮助--",1);
       }
       else if(e.getSource()==quit)
       {
          int s=JOptionPane.showConfirmDialog(null,"你真的要退出吗"," 退出程序",JOptionPane.YES_NO_CANCEL_OPTION);
          if(s==JOptionPane.YES_OPTION)
       System.exit(0);
       }
    }
    }前面的问题已经解决了,现在的问题是:当程序运行的时候,开机时间:17:41:12
    过一会儿后点击显示当前时间:17:41:52,然后点击显示已开机时间:结果显示是:08:00:40
    怎么多出来8个小时了啊?这是怎么回事啊???
      

  7.   

    这里这个a是一个和1970-01-01 00:00:00的一个时间差,单位是?(记不得了),如果转化有有一个很好的类叫做:java.text.SimpleDateFormat ,一个简单的用法SimpleDateFormat dateformt=new SimpleDateFormat("yyyy-MM-dd");
          Date now = new Date();
    String s = formatter.format(now);如果遇到时间的运算,我个人喜欢用 Calendar类!你自己可以翻看JDK帮助文档,前人已经做好的东西,拿来用吧,用过你学习,就自己研究,做工程就知道怎么用就行了