在java.中如何获得两个时间对象的时间差.

在java.中如何获得两个时间对象的时间差.,第1张

通过 这个方法 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怎样获得系统当前的年份等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9442756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存