java时间加减

发布网友 发布时间:2022-04-21 05:48

我来回答

5个回答

热心网友 时间:2022-06-18 07:49

附上代码:


        Date date = new Date("2014/1/10 18:20");
        Date date2 = new Date("2014/1/11 3:5");
        long temp = date2.getTime() - date.getTime();    //相差毫秒数
        long hours = temp / 1000 / 3600;                //相差小时数
        long temp2 = temp % (1000 * 3600);
        long mins = temp2 / 1000 / 60;                    //相差分钟数
        System.out.println("date2 与 date 相差" + hours + "小时"+ mins + "分钟");



****************************************希望能够帮助到你!************************************************
如果我的回答对你有帮助,
别忘了点击我的回答下方【选为满意答案】按钮。
谢谢!

热心网友 时间:2022-06-18 07:49

1.用java.util.Calender来实现

Calendar calendar=Calendar.getInstance();
calendar.setTime(new Date());
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//今天的日期
calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)+1);//让日期加1
System.out.println(calendar.get(Calendar.DATE));//加1之后的日期Top 

2.用java.text.SimpleDateFormat和java.util.Date来实现

Date d=new Date();
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
System.out.println("今天的日期:"+df.format(d));
System.out.println("两天前的日期:" + df.format(new Date(d.getTime() - 2 * 24 * 60 * 60 * 1000)));
System.out.println("三天后的日期:" + df.format(new Date(d.getTime() + 3 * 24 * 60 * 60 * 1000)));

GregorianCalendar gc=new GregorianCalendar(); 
gc.setTime(new Date); 
gc.add(field,value); 
value为正则往后,为负则往前 
field取1加1年,取2加半年,取3加一季度,取4加一周 
取5加一天....

*java中对日期的加减操作
*gc.add(1,-1)表示年份减一.
*gc.add(2,-1)表示月份减一.
*gc.add(3.-1)表示周减一.
*gc.add(5,-1)表示天减一.
*以此类推应该可以精确的毫秒吧.没有再试.大家可以试试.
*GregorianCalendar类的add(int field,int amount)方法表示年月日加减.
*field参数表示年,月.日等.
*amount参数表示要加减的数量.

热心网友 时间:2022-06-18 07:50

public static void main(String[] args){
//初始化日期时间
Calendar cal1 = Calendar.getInstance();
cal1.set(2014, 1, 10, 18, 20);
Calendar cal2 = Calendar.getInstance();
cal2.set(2014, 1, 11, 3, 5);
//获取TimeInMillis 毫秒级别
long time1 = cal1.getTimeInMillis();
long time2 = cal2.getTimeInMillis();
//计算时间差
long lagTime = time2 - time1;
System.out.println("time1="+time1+"time2="+time2+"lagTime="+lagTime);
//计算相差的小时数
long laghour = lagTime/1000/60/60;
//计算相差的分钟数
long lagMinute = lagTime/1000/60-laghour*60;
System.out.println("laghour=["+laghour+"] lagMinute=["+lagMinute+"]");
}

运行输出为:
time1=1392027618682time2=1392059118682lagTime=31500000
laghour=[8] lagMinute=[45]

热心网友 时间:2022-06-18 07:50

用SimpleDateFormat把这2个日期转成Date,
long date1=d1.getTime();
long date2=d2.getTime();
long days=(date1-date2)/(24*60*60*1000)

热心网友 时间:2022-06-18 07:51

Date a1=new Date("2014/1/10 18:20");Date a2=new Date("2014/1/11 3:20");long millis=a2.getTime()-a1.getTime();//计算他们之间时间差(毫秒)int hours=millis/1000/60/60;//计算相差多少小时
millis = millis - hours*60*60*1000;//除去小时数后剩余毫秒数int minutes=millis/1000/60;//计算相差多少分钟
millis = millis - minutes*60*60*1000;//除去分钟数后剩余毫秒数
int seconds = millis/1000;
millis = millis - seconds*1000;System.out.println(“它们之间相差”+hours+"小时"+minutes+"分钟"+seconds+"秒"+millis+"毫秒");

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com