如何用JAVA把两个时间相减

1.如何获得系统当前时间格式为(yyyy-MM-dd HH:mm:ss)格式
(为了显示给用户看,不需要多线程,只显示一遍)
2.获得上机时间和下机时间后如何转化为毫秒格式
(用于时间相减得出使用时间的毫秒数)

急求 复制的别来 鄙视
最好用// 注明哪里是解答我第一个问题和第二个问题的
谢谢了 满意绝对加分! 分是小事

调试过的程序,可以直接运行`!!!!!!

import java.util.Date;

import com.ibm.icu.text.SimpleDateFormat;

public class mss {

public mss() {
}

public long fromDateStringToLong(String inVal) { //此方法计算时间毫秒
Date date = null; //定义时间类型
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-mm-dd hh:ss");
try {
date = inputFormat.parse(inVal); //将字符型转换成日期型
} catch (Exception e) {
e.printStackTrace();
}
return date.getTime(); //返回毫秒数
}

private static String dqsj() { //此方法用于获得当前系统时间(格式类型2007-11-6 15:10:58)
Date date = new Date(); //实例化日期类型
String today = date.toLocaleString(); //获取当前时间
System.out.println("获得当前系统时间 "+today); //显示
return today; //返回当前时间
}

public static void main(String[] args) {
String dqsj = dqsj(); //获得String dqsj = dqsj(); //获得当前系统时间
mss df = new mss(); //实例化方法

long startT=df.fromDateStringToLong("2005-03-03 14:51:23"); //定义上机时间
long endT=df.fromDateStringToLong("2004-03-03 13:50:23"); //定义下机时间

long ss=(startT-endT)/(1000); //共计秒数
int MM = (int)ss/60; //共计分钟数
int hh=(int)ss/3600; //共计小时数
int dd=(int)hh/24; //共计天数

System.out.println("共"+dd+"天 准确时间是:"+hh+" 小时 "+MM+" 分钟"+ss+" 秒 共计:"+ss*1000+" 毫秒");

}

}

这是执行结果``

获得当前系统时间 2007-11-6 15:57:39
共366天 准确时间是:8785 小时 527100 分钟31626001 秒 共计:31626001000 毫秒

参考资料:自己写的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-11-05
Date d = new Date();//获得当前时间
DateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式化时间

System.out.println(f.format(d));//格式化显示

Long ms = d.getTime();//获得毫秒值
第2个回答  2007-11-04
//如何获得系统当前时间格式为(yyyy-MM-dd HH:mm:ss)格式
Calendar cal = Calendar.getInstance();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //HH 24小时制
sf.format(cal.getTime())
第3个回答  2007-11-04
//1
java.util.Date date = new java.util.Date();
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
sdf.format(date);

//2
long str = System.currentTimeMillis();
.....
.....
long end = System.currentTimeMillis();
long time = end - str;
第4个回答  2007-11-04
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.SimpleDateFormat;
class dd extends Frame implements ActionListener
{
long x=System.currentTimeMillis();
TextField tt,t1;
Button bb,bv;
SimpleDateFormat sim;
Date time;
dd()
{
tt=new TextField(18);t1=new TextField(18);
bb=new Button("显示当前时间");
bv=new Button("显示上机时间");
setLayout(new FlowLayout());
time=new Date(x);
String s="yyyy-MM-dd HH:mm:ss";
sim=new SimpleDateFormat(s);
System.out.print(""+sim.format(time));
add(bb);
bb.addActionListener(this);
bv.addActionListener(this);
add(tt);
add(bv);
add(t1);
setSize(150,100);
setVisible(true);
pack();
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);

}
});

}
public void actionPerformed(ActionEvent w)
{
if(w.getSource()==bb)
{
tt.setText(""+sim.format(time));
}
if(w.getSource()==bv)
{
long y=System.currentTimeMillis();
String s=String.valueOf(y-x);
t1.setText(s);
}
}
}
public class daxin
{
public static void main(String args[])
{

new dd();
}}