银行发来的日期为21076 让我百思不得解。通过摸索发现这个时间是要加上19570101 年才能得出正确的年月日。 下面我提供mysql 与oracle 数据库 中把日期转换为yyyymmdd 格式
MySQL
select date_format (date_add('19570101', INTERVAL a.openDate Day),'%Y%m%d') opemdate from accfregister a
Oracle
SELECT to_char((TO_DATE(1957001,'YYYYDDD')+V_DATE5),'yyyymmdd') FROM DUAL
那么怎么把时间从八位变为五位呢?
就是把得到的时间减去19570101喽!
public static String daysBetween(String smdate,String bdate) throws ParseException
{
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
Date miD = sdf.parse(smdate);
Date largerD =sdf.parse(bdate);
Calendar cal = Calendar.getInstance();
cal.setTime(miD);
long time1 = cal.getTimeInMillis();
cal.setTime(largerD);
long time2 = cal.getTimeInMillis();
long between_days=(time2-time1)/(1000*3600*24);
return String.valueOf(between_days);
}