java时间加减

问题:
比如我现在是时间是:2014年1月10日18时20分
我要计算:2014年1月11日3时05分
这俩个时间的相差小时已经分钟该怎么计算,给点简单的例子啊,一定要简单易懂的,我是新手!
谢谢!

第1个回答  2014-01-11
//初始化时间
Date a1=new Date("2014/1/10 18:20");
Date a2=new Date("2014/1/11 3:20");
//计算他们之间时间差(相差多少毫秒 1000毫秒等于一秒)
long l=a2.getTime()-a1.getTime();
//计算相差多少分钟
int m=l/1000.0/60;
//计算相差多少小时
int h=l/1000.0/60/60;
//相差多少小时分钟
System.out.println(l/1000/60/60+"小时"+l/1000/60%60+"分钟");
第2个回答  2014-01-11
假设
  现在是2004-03-26 13:31:40 过去是:2004-01-02 11:30:24要获得两个日期差,差的形式为:XX天XX小时XX分XX秒
方法一:DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try{
Date d1 = df.parse("2004-03-26 13:31:40");
Date d2 = df.parse("2004-01-02 11:30:24");
long diff = d1.getTime() - d2.getTime();
long days = diff / (1000 * 60 * 60 * 24);
}catch (Exception e){
}追问

parse里面的2004-03-26 13:31:40是什么类型的啊?
如果我的两个时间都是由用户在JComeBox选择的,我需要把他选中的数字强制转换成int类型吗?

追答

Date
java.text.DateFormat.parse(String
source) throws ParseException

是String类型不用强制转换成int

追问

小弟还有一个问题:成员变量:JComeBox bx1 = new JComeBox();我在本类中为它设置了坐标以及添加到了JFrame里面,但是为什么我在另外一个类里面去Y1 y = new Y1(); y.bx1.getSelectedItem().toString()的时候会报 :NullPointerException啊?

第3个回答  2014-01-11
用减法计算就好了啊,输入当前时间,输入计算的时间,分别用y1,m1,d1,h1,m1和y2,m2,d2,h2,m2定义两个时间,然后根据每小时60分钟,每天24小时求差就可以了吧。。追问

这....计算出来是会有问题的,我已经试过了 不知道是我的思维有问题还是计算出来就是真的有问题!

追答

额。。。。晚上喝的有点多,明天给你程序好吗

第4个回答  2014-01-11
新手可以使用joda time库。
Duration 类满足这个需求

java.util.concurrent.TimeUnit也可以用来转换,从 ms 到 days追问

????没看懂 API上面写的只是一个简单的函数啊,主要的是我不会写这段代码

追答import org.joda.time.*;

DateTime dt1 = new DateTime(2014,1,10,18,20);
DateTime dt2 = new DateTime(2014,1,11,3,5);
Duration d = new Duration(dt1, dt2);
Period p = d.toPeriod(PeriodType.time());
int h = p.getHours();
int m = p.getMinutes();
int s = p.getSeconds();

第5个回答  2015-06-08
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
Date date=new Date(1433198978035);
System.out.println(format1.format(date));