0
点赞
收藏
分享

微信扫一扫

java计算时间日期间隔程序

java计算时间日期间隔程序_java

收藏了几款经典的关于java计算时间日期间隔程序代码,我们分析实例最好推荐最好的最优和日期时间间隔程序给大家,有需要的同学可以参考一下。

计算时间差 **/

代码如下



SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String systemTime = sdf .format(new Date()).toString();

将截取到的时间字符串转化为时间格式的字符串 **/
Date begin=sdf.parse(2008-03-28 11:55:30);
Date end = sdf.parse(systemTime);

long between=(end.getTime()-begin.getTime())/1000;//除以1000是为了转换成秒

long day=between/(24*3600);
long hour=between%(24*3600)/3600;
long minute=between%3600/60;
long second=between%60/60;
if((hour==0)&&(day==0)&&(minute<=30)) { /****/}


比如:现在是2004-03-26 13:31:40

过去是:2004-01-02 11:30:24

我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒


这里dateA,dateB的格式要与yyyy-MM-dd一致!切记!

实例

代码如下


/**

* 根????日期,取得相隔的天??br /> * 方法名 :

* @param dateA

* @param dateB

* @return

*/

public static int getBetweenDayNumber(String dateA, String dateB) {

long dayNumber = 0;

long DAY = 24L * 60L * 60L * 1000L;

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

try {

java.util.Date d1 = df.parse(dateA);

java.util.Date d2 = df.parse(dateB);

dayNumber = (d2.getTime() - d1.getTime()) / DAY;

} catch (Exception e) {

e.printStackTrace();

}

return (int) dayNumber;

}

实例

代码如下



SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date begin=dfs.parse("2004-01-02 11:30:24");
java.util.Date end = dfs.parse("2004-03-26 13:31:40");
long between=(end.getTime()-begin.getTime())/1000;//除以1000是为了转换成秒

long day1=between/(24*3600);
long hour1=between%(24*3600)/3600;
long minute1=between%3600/60;
long second1=between%60/60;
System.out.println(""+day1+"天"+hour1+"小时"+minute1+"分"+second1+"秒");


实例

java中计算两日期间隔天数的简单示例

代码如下



package com.color.program;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class CompareTime {

public static void main(String[] args){
String t1 = "2008-05-09";
String t2 = "2008-5-13";

try {
System.out.println(CompareTime.getBetweenDays(t1, t2));
} catch (ParseException e) {
e.printStackTrace();
}
}

/**
* 取得两个时间段的时间间隔
* return t2 与t1的间隔天数
* throws ParseException 如果输入的日期格式不是0000-00-00 格式抛出异常
*/
public static int getBetweenDays(String t1,String t2) throws ParseException{
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
int betweenDays = 0;
Date d1 = format.parse(t1);
Date d2 = format.parse(t2);
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(d1);
c2.setTime(d2);
// 保证第二个时间一定大于第一个时间
if(c1.after(c2)){
c1 = c2;
c2.setTime(d1);
}
int betweenYears = c2.get(Calendar.YEAR)-c1.get(Calendar.YEAR);
betweenDays = c2.get(Calendar.DAY_OF_YEAR)-c1.get(Calendar.DAY_OF_YEAR);
for(int i=0;i<betweenYears;i++){
c1.set(Calendar.YEAR,(c1.get(Calendar.YEAR)+1));
betweenDays += c1.getMaximum(Calendar.DAY_OF_YEAR);
}
return betweenDays;
}

}


(format.parse(t1).getTime()-format.parse(t2).getTime() 间隔一年的话,这个数据就非常大了 如果多年,会不会有异常?


实例

计算两个日期时间差实例代码:

代码如下



public static void main(String[] args) throws ParseException{

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date currentTime=new Date();
//将截取到的时间字符串转化为时间格式的字符串
Date beginTime=sdf.parse("2010-07-27 12:53:30");
//默认为毫秒,除以1000是为了转换成秒
long interval=(currentTime.getTime()-beginTime.getTime())/1000;//秒
long day=interval/(24*3600);//天
long hour=interval%(24*3600)/3600;//小时
long minute=interval%3600/60;//分钟
long second=interval%60;//秒
System.out.println("两个时间相差:"+day+"天"+hour+"小时"+minute+"分"+second+"秒");

}


可以把数据库的日期时间转换成毫秒数,然后计算间隔时间差,如果只想计算出两个时间相差几天可以:间隔秒数/60*60*24。

注意:数据库中或提供的日期时间格式一定要与SimpleDateFormat("yyyy-MM-dd HH:mm:ss")中的日期格式一致,不然会出错的。


举报

相关推荐

0 条评论