【www.bbyears.com--时间日期】
计算时间差 **/
代码如下 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
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")中的日期格式一致,不然会出错的。