最近在做一个程序,是把ORACLE里的数据读出来送到SQLSERVER里面去,本来这个程序也没什么,想想一会儿就能做完,但是仔细一看ORACLE里头的数据,发现怎么时间是用字串存的,而且还会出现超过24小时的,一问,原因是时间记录是按班次的,一班48个小时。然而程序要求送到SQLSERVER里的时间是DATETIME类型的,一时间想不到什么好办法,只有分析字符串,得到年、月、日、时、分、、秒后,再把不合理的时间处理了,还能有什么好办法??真是越想越不想做,本来一个非常简单的程序,如果这样一来倒把功夫花在不必要的细节上,真是划不来!不行,JAVA的库这么丰富,一定有好办法的!于是,我就在HELP里找,DATE、CALENDAR、DATEFORMAT翻了个遍,找了一下相互的关系,终于让我搞明白了,找到一个比较方便的办法来解决,特拿出来与大家共享!
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
Date date;
try{
date = df.parse("20031124291921");
df.applyPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(df.format(date));
} catch (ParseException e){
System.out.println(e.toString());
}
以上代码就是我整个分析日期时间的过程,简单吧?哈哈!这得归功于JAVA丰富的类库,另外,我还写了个得到与当天差任意天的格式化时间:
public String getPriorDay(int offset, String splitdate, String splittime){
Calendar theday = Calendar.getInstance();
theday.add(Calendar.DATE, offset);
df.applyPattern("yyyy"+splitdate+"MM"+splitdate+"dd"+" "+"HH"+splittime+"mm"+splittime+"ss");
return df.format(theday.getTime());
}
OFFSET表示与当天相差的天数,SPLITDATE表示日期间的分隔符,SPLITTIME表示时间间的分隔符。