Java日期类型的转换处理
1.java中处理时间日期的类主要有Date和Calendar两种.由于项目中涉及了从数据库中得到的Timestamp邮戳类型的处理.Date现在不提倡用来处理日期.Calendar是对Date的继承和扩充.Calendar是抽象的类,所以通用的new方法是不能用的.java为它提供了实现的子类---GregorianCalendar.Calendar默认实例是通过Calendar类型的getInstance()方法获得.总的来说,Calendar更象一个大的日期处理工厂.它里面提供的各种丰富的方法和静态常量.对于日期各个组成部分可以拆卸成各个部分小零件,对每个部分处理.然后在组装在一起再转换成相应的日期类型. 2.Calendar提供.set(int fields,int)方法.用于设置相应时间. 3.add()方法则用来修改相应的日期值. 4.Calendar提供除了可以自动获得系统默认的时间外,还可以接受来自用户定义的数据.主要是Date和Long类型参数.Calendar有两个方法是:setTime(Date)和setTimeInMillis(long).Calendar.setTime(Date)可以将Date类型对象转化为Calendar 对象Calendar.getTime()方法返回Date类型对象.可以看到Date和Calendar类型之间的转化是相对容易的.Calendar类中的add()方法功能非常强大.add() 可以对 Calendar 的字段进行计算。如果需要减去值,那么使用负数值就可以了.如 add(field, -value)。 add() 有两条规则:当被修改的字段超出它可以的范围时,那么比它大的字段会自动修正。如:Calendar cal1 = Calendar.getInstance();cal1.set(2000, 7, 31, 0, 0 , 0); //2000-8-31cal1.add(Calendar.MONTH, 1); //2000-9-31 => 2000-10-1,对吗?System.out.println(cal1.getTime()); //结果是 2000-9-30 另一个规则是,如果比它小的字段是不可变的(由 Calendar 的实现类决定),那么该小字段会修正到变化最小的值。以上面的例子,9-31 就会变成 9-30,因为变化最小。 Calendar与timestamp类型转换的问题. 两者没有直接的方法 要做响应的转换. Calendar<--->long<--->timeStamp Calendar.setTimeInMillis(long)和Calendar.getTimeInMillis()返回long timeStamp.setTime(long)和timeStamp.getTime()返回long 这样就可以实现两者之间的转换了