java时间相减

  对已日期相减,最高效的做法就是将二者都转换成毫秒,相减之后再根据你的需求进行单位转换,比如你想显示相差的秒数,就除以1000,以此类推,翠花,上代码:

        /* 随便选两个时间 */
        String d1 = "2015-04-17";
        String d2 = "2015-06-17";
        
        /* 先转成毫秒并求差 */
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        long m = sdf.parse(d2).getTime() - sdf.parse(d1).getTime();
        
        /* 根据你的需求进行单位转换 */
        System.out.println("相差毫秒数:"+ m );
        System.out.println("相差天数:"+ ( m / (1000 * 60 * 60 * 24) ) );

要注意的地方:

时间格式可能有很多种,比如20150611或者2015年6月11日等等。所以你需要以对应的方式来初始化SimpleDateFormat对象。

例如20150611,就要写成:

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

SimpleDateFormat类是非线程安全的,所以在高并发下需要加同步锁,否则会出现灵异事件。

给你提供一个思路。

两个日期转化为毫秒相减,相减后的毫秒转化为天数(因为日期-日期=天数)

比如date是个Date型 long time1=date.getTime()(将日期转成毫秒数),另一个也转成毫秒数相减,后面就是把相减得到的毫秒数换成天数就可以了。import java.util.*;
public class DateSubtract {
public static void main(String[] args) {
Calendar nowDate=Calendar.getInstance(),oldDate=Calendar.getInstance();
nowDate.setTime(new Date());//设置为当前系统时间
oldDate.set(1990, 5, 19);//设置为1990年(6)月29日
long timeNow=nowDate.getTimeInMillis();
long timeOld=oldDate.getTimeInMillis();
long 相隔天数=(timeNow-timeOld)/(1000*60*60*24);//化为天
System.out.println("相隔"+相隔天数+"天");
}
}你可以先把日期类型转换成毫秒(Long类型),让后在运算!
cgi和servlet apoa1/apob snis 511r 直男stone系列 ed2k ,applaud 联想x100e 评测 happy to see you 按钮css cursor led50ec590un root wpf config文件 tempo25 lucy pinder bigboots runningmanexocut jenkins build on ipone4s卖掉 ninject mvc5 i am new here提问 Lucius Q.C. Lamar abb rcan01 win10开机反复重启 小说男主明星女主助理 带土bg宇智波是一种病 my day 单词录音 jty hf gst102 华为8816d刷机 dx300lc 9c上市 common sense pdf lm29302 osek nm 树莓派安装qt

Copyright 三路网 Some Rights Reserved

如反馈或投诉等情况联系:une35498#163.com