感受JAVA的时间日期处理能力!

最近在做一个程序,是把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表示时间间的分隔符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值