long a=date.getTime();
date是定义的Date类的实例,我想请问一下这个a得到的到底是一个什么东东啊,反正是好大的一个数,单位是什么啊,是ms???????如果我要把它转换成HH:MM:SS的这种格式应该怎么转换啊?(怎样转换才是重点,我把那个a的单位当成是ms然后转换以后得到的结果老是有错)
date是定义的Date类的实例,我想请问一下这个a得到的到底是一个什么东东啊,反正是好大的一个数,单位是什么啊,是ms???????如果我要把它转换成HH:MM:SS的这种格式应该怎么转换啊?(怎样转换才是重点,我把那个a的单位当成是ms然后转换以后得到的结果老是有错)
DateFormat df = new SimpleDateFormat("hh:mm:ss");
Calendar c = Calendar.getInstance();
c.setTimeInMillis(new Date().getTime());
String s = df.format(c.getTime());
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
String time = sdf.format(new Date());
我定义了两个 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;
Date date = new Date(a3);
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
String time = sdf.format(date);
system.out.println(time);
{
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个小时了啊?这是怎么回事啊???
Date now = new Date();
String s = formatter.format(now);如果遇到时间的运算,我个人喜欢用 Calendar类!你自己可以翻看JDK帮助文档,前人已经做好的东西,拿来用吧,用过你学习,就自己研究,做工程就知道怎么用就行了