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

Calendar 与 java.sql.Date格式的转换
Calendar calendar = Calendar.getInstance();
calendar.setTime(temp.getOught_Date());//temp.getOught_Date()返回的是一个date.
calendar.add(Calendar.DATE, 5);
temp.setOught_Date(calendar.getTime());//这句就报错了。。。temp.setOught_Date()的参数类型也是一个date
. //而且这两个中date用的都是import java.sql.Date;
.
setOught_Date的函数声明如下:
.public void setOught_Date(Date ought_Date) {
this.ought_Date = ought_Date;
}

这个问题应该怎么解决啊? 


------解决方案--------------------
java.sql.Date是java.util.Date的子类,sql.Date只有年月日,没有时分秒
而java.sql.Timestamp是带十分秒的,不知道你想用哪个

可以用

如果你用preparestatement.setDate的话,就需要用java.sql.Date
Java codeCalendar c = Calendar.getInstance();
java.sql.Date date = new java.sql.Date(c.getTime().getTime())
------解决方案--------------------
如果时间是sql.DATE型的,直接插
如果时间是Util.DATE型的,需要转换,Timestamp.valueOf(String s),变成Timestamp后插入到数据库

下载参考资料资料:
http://download.csdn.net/detail/yuyangyangdlpu1/3460211
------解决方案--------------------
calendar.getTime() 返回 java.util.Date

this.ought_Date貌似是 java.sql.Date
------解决方案--------------------
应该使用java.util.Date而不是java.sql.Date,这样能够带有 时分秒的信息
给你贴一个实例
Java code

import java.util.Calendar;
import java.util.Date;

/**
 * Created by IntelliJ IDEA.
 * User: Administrator
 * Date: 2011-9-23
 * Time: 13:19:17
 * To change this template use File | Settings | File Templates.
 */
public class CalendarDemo {
    public Date getOught_Date() {
        return ought_Date;
    }

    private Date  ought_Date;

    //        setOught_Date的函数声明如下:
        public void setOught_Date(Date ought_Date) {
        this.ought_Date = ought_Date;
        }

    public static void main(String[] args){
        CalendarDemo temp=new CalendarDemo();
        temp.setOught_Date(new Date());
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(temp.getOught_Date());
        calendar.add(Calendar.DATE, 5);
        temp.setOught_Date(calendar.getTime());

        System.out.println(temp.getOught_Date());

    }
}