java中時間比較大小

方法一:
 
DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); 
 
String dateBegin=fmt.format(carrierCommand.getDateBegin()); 
 
String dateEnd=fmt.format(carrierCommand.getDateEnd()); 
 
//若是得到的日期格式不是'2008-05-22',就必需要格式化一下日期 
 
String dateBegin = request.getParameter("dateBegin"); 
 
String dateEnd = request.getParameter("dateEnd"); 
 
if(java.sql.Date.valueOf(dateBegin).after(java.sql.Date.valueOf(dateEnd))){ 
 
//起始日期大於結束日期 
 
errors.rejectValue("dateEnd", null, "起始日期必須小於結束日期!"); 
 
} 
 
StringBuffer timeBegin = new StringBuffer(); 
 
StringBuffer timeEnd = new StringBuffer(); 
 
timeBegin.append(request.getParameter("timeBegin")); 
 
timeEnd.append(request.getParameter("timeEnd")); 
 
timeBegin.append(":00"); 
 
timeEnd.append(":00"); 
 
if(java.sql.Date.valueOf(dateBegin).equals(java.sql.Date.valueOf(dateEnd))) 
 
{ //起始日期等於結束日期 
 
if(java.sql.Time.valueOf(timeBegin.toString()).equals(java.sql.Time.valueOf 
 
(timeEnd.toString())))//時間相同 
 
{ 
 
errors.rejectValue("timeEnd", null, "起始與結束日期相同,起始時間必須小於結束時間!"); 
 
} 
 
if(java.sql.Time.valueOf(timeBegin.toString()).after(java.sql.Time.valueOf 
 
(timeEnd.toString())))//時間相同 
 
{ 
 
errors.rejectValue("timeEnd", null, "起始與結束日期相同,起始時間必須小於結束時間!"); 
 
} 
 
}
 
方法二:
 
import java.text.DateFormat;
 
import java.text.SimpleDateFormat;
 
import java.util.Date; 
 
/**
 
*
 
* @author  hp
 
*/
 
public class test {
 
public static void main(String args[]) {
 
int i= compare_date("1995-11-12 15:21", "1999-12-11 09:59");
 
System.out.println("i=="+i);
 
}
 
public static int compare_date(String DATE1, String DATE2) {
 
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");
 
try {
 
Date dt1 = df.parse(DATE1);
 
Date dt2 = df.parse(DATE2);
 
if (dt1.getTime() > dt2.getTime()) {
 
System.out.println("dt1 在dt2前");
 
return 1;
 
} else if (dt1.getTime() < dt2.getTime()) {
 
System.out.println("dt1在dt2後");
 
return -1;
 
} else {
 
return 0;
 
}
 
} catch (Exception exception) {
 
exception.printStackTrace();
 
}
 
return 0;
 
}
 
}
 
方法三:
 
好比:如今是2004-03-26 13:31:40
 
過去是:2004-01-02 11:30:24
 
我如今要得到兩個日期差,差的形式爲:XX天XX小時XX分XX秒
 
java計算時間差及比較時間大小
 
好比:如今是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 = df.parse("2004-03-26 13:31:40");
 
Date d2 = df.parse("2004-01-02 11:30:24");
 
long diff = d1.getTime() - d2.getTime();
 
long days = diff / (1000 * 60 * 60 * 24);
 
}
 
catch (Exception e)
 
{
 
}
 
二:
 
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
java.util.Date now = df.parse("2004-03-26 13:31:40");
 
java.util.Date date=df.parse("2004-01-02 11:30:24");
 
long l=now.getTime()-date.getTime();
 
long day=l/(24*60*60*1000);
 
long hour=(l/(60*60*1000)-day*24);
 
long min=((l/(60*1000))-day*24*60-hour*60);
 
long s=(l/1000-day*24*60*60-hour*60*60-min*60);
 
System.out.println(""+day+"天"+hour+"小時"+min+"分"+s+"秒");
 
三:
 
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 比較時間大小
 
String s1="2008-01-25 09:12:09";
 
String s2="2008-01-29 09:12:11";
 
java.text.DateFormat df=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
java.util.Calendar c1=java.util.Calendar.getInstance();
 
java.util.Calendar c2=java.util.Calendar.getInstance();
 
try
 
{
 
c1.setTime(df.parse(s1));
 
c2.setTime(df.parse(s2));
 
}catch(java.text.ParseException e){
 
System.err.println("格式不正確");
 
}
 
int result=c1.compareTo(c2);
 
if(result==0)
 
System.out.println("c1相等c2");
 
else if(result<0)
 
System.out.println("c1小於c2");
 
else
 
System.out.println("c1大於c2");
相關文章
相關標籤/搜索