日期:2014-05-20  浏览次数:20771 次

日期比较问题(急)!
日期是14位的
如:
开始时间
  20070523111700
结束时间
  20070531180000

如何能知道
    结束时间-开始时间=差几天

谢谢各位

------解决方案--------------------
给你个例子,看看就明白了


long endTime = 0;
long beginTime = 0;

Date begin_time = new Date();
Date end_time = new Date();

SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss ");
try {
begin_time = sdf.parse( "2007-02-10 10:10:10 ");//m_begintime=txt_begintime.getText();开始的时间
end_time = sdf.parse( "2007-02-10 10:10:11 ");//m_endtime=txt_endtiem.getText();结束的时间
endTime = end_time.getTime();
beginTime = begin_time.getTime();
} catch (Exception e) {
}
int result = new Long(endTime - beginTime).intValue();
System.out.println(result);


------解决方案--------------------
用SimpleFormatDate转成Date减,得到毫秒,然后再换算成天
------解决方案--------------------
import java.util.*;
import java.text.*;

public class DateTest
{
public static void main(String[] args) throws Exception
{
String startDate = "20070523111700 ";
String endDate = "20070531180000 ";

SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMddHHmmss ");
Date currDate = new Date();
System.out.println(sdf.format(currDate));

Date sDate = sdf.parse(startDate);
Date eDate = sdf.parse(endDate);

System.out.println((eDate.getTime() - sDate.getTime()) / (1000 * 60 * 60 * 24));
}
}


------解决方案--------------------
SimpleDateFormat smdf = new SimpleDateFormat( "yyyyMMddhhmmss ");
try {
Date start = smdf.parse( "20070523111700 ");
Date end = smdf.parse( "20070531180000 ");
long t = (end.getTime() - start.getTime()) / (3600 * 24 * 1000);
System.out.println(t);
} catch (ParseException e) {
e.printStackTrace();
}
------解决方案--------------------
String start_time = "20070523231700 ";
String end_time = "20070532180000 ";
long start = 0;
long end = 0;
SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMddhhmmss ");
try {
start = sdf.parse(start_time).getTime();
end = sdf.parse(end_time).getTime();
} catch(Exception ex) {
ex.printStackTrace();
}
int subdays = (int)((end - start)/24/1000/60/60);
System.out.println( "subdays = " + subdays );
------解决方案--------------------
/**
*
*/
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
* @author liaojy 下午03:12:24
*/
public class Test {
public static long dataDiff(Date a, Date b) {
return (a.getTime() - b.getTime()) / 86400000;
}

/**
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
System.out.print(Math.abs(dataDiff(new SimpleDateFormat( "yyyyMMddmmss ").parse( "200703041232 "), new SimpleDateFormat( "yyyyMMddmmss ").parse( "200703090000 ")))+ "\n ");