通过 这个方法 SystemcurrentTimeMillis();
先准备好一个全局变量。Long s_time = 0;
在时间点1时 s_time = SystemcurrentTimeMillis();
在时间点2时 取临时变量 Long temp = SystemcurrentTimeMillis();
然后通过 temp - s_time 即是两个时间差,这个值是毫秒的。除以1000 就是秒。
现在是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 = dfparse("2004-03-26 13:31:40");
Date d2 = dfparse("2004-01-02 11:30:24");
long diff = d1getTime() - d2getTime();
long days = diff / (1000 60 60 24);
}
catch (Exception e)
{
}
方法二:
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
javautilDate now = dfparse("2004-03-26 13:31:40");
javautilDate date=dfparse("2004-01-02 11:30:24");
long l=nowgetTime()-dategetTime();
long day=l/(2460601000);
long hour=(l/(60601000)-day24);
long min=((l/(601000))-day2460-hour60);
long s=(l/1000-day246060-hour6060-min60);
Systemoutprintln(""+day+"天"+hour+"小时"+min+"分"+s+"秒");
方法三:
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
javautilDate begin=dfsparse("2004-01-02 11:30:24");
javautilDate end = dfsparse("2004-03-26 13:31:40");
long between=(endgetTime()-begingetTime())/1000;//除以1000是为了转换成秒
long day1=between/(243600);
long hour1=between%(243600)/3600;
long minute1=between%3600/60;
long second1=between%60/60;
Systemoutprintln(""+day1+"天"+hour1+"小时"+minute1+"分"+second1+"秒");
public static String getSysYear() {
Calendar date = CalendargetInstance();
String year = StringvalueOf(dateget(CalendarYEAR));
return year;
}
扩展资料:
获取当前系统时间和日期并格式化输出:
import javautilDate;
import javatextSimpleDateFormat;
public class NowString {
public static void main(String[] args) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
Systemoutprintln(dfformat(new Date()));// new Date()为获取当前系统时间
}
}
你要好好看api文档,Calendar类是进行日期计算的,里面还需要用到DateFormat类进行格式类型转化赋给Date,然后赋给Calendar进行计算,因为java提供了一个从
1970年1月1日 00:00:00 开始 以毫秒为单位,几乎往后你能想到的任何年份日历已经编排好了,你只需要赋值,然后调用Calendar类方法就能进行任意两个时间之差,不论是年差,月差,日差,时差
具体的方法你去看16API中文吧
你可以如此计算,
年份差、月份差算出整数部分
小数部分再按剩余日期、时分秒按其在当月的比例计算
如2012-11-24 14:20:00和2012-5-24 14:20:00
年差为0,月差为6,其他差为0,结果为60
若其中出现某差为负数,需调整
如2012-11-24 14:20:00和2012-5-31 14:20:00
年差为0,月差为6,日差为-6,将月差改为5,
即先计算和2012-6-24 14:20:00的差,
2012-6-24 14:20:00到2012-5-31 14:20:00再计算,
可按6月份2012-6-24 14:20:00到2012-6-01 00:00:00 占6月份比例
再计算5月份2012-5-31 24:00:00到2012-5-31 14:20:00占5月份比例
两个比例加起来是小数部分。
woqu,360liulanqyoubu我zhichi qq pinyinle,mei banf,886
哦,又可以打字了,好吧
我说下,这个两个日期之间的那个方法我忘了,不过的确两个相隔日期得不到准确月数,这个月份是按照真实相隔,还是按照30天数数一个月计数的也未知,不过看代码提示应该是按天计算的,那么你就必须对这个年份进行处理判断闰年等,然后根据闰年来计算每个月的天数,接着根据天数来判断有几个月,建议你自己写个方法,不用那个内部的方法,计算出两个日期间到底相差多少天,最后除以30即为月份,除的结果向下取整,这个也切实一点,这个整月也好判断
以上就是关于在java.中如何获得两个时间对象的时间差.全部的内容,包括:在java.中如何获得两个时间对象的时间差.、java date 计算时间差、java怎样获得系统当前的年份等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)