
收藏了几款经典的关于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")中的日期格式一致,不然会出错的。