GVKun编程网logo

将Java.Util.Date转换为Java.Sql.Date时出错(java 将date转为yyyy-mm-dd)

5

本篇文章给大家谈谈将Java.Util.Date转换为Java.Sql.Date时出错,以及java将date转为yyyy-mm-dd的知识点,同时本文还将给你拓展ClassCastException

本篇文章给大家谈谈将Java.Util.Date转换为Java.Sql.Date时出错,以及java 将date转为yyyy-mm-dd的知识点,同时本文还将给你拓展ClassCastException:无法将java.util.Date强制转换为java.sql.Date、java.util.Date java.sql.Date java.util.Date,String,long 类型数据之间的转化、java.util.Date,java.sql.Date 与字符串之间的相互转换、java.util.Date到java.sql.Date的转换给出错误的月份等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

将Java.Util.Date转换为Java.Sql.Date时出错(java 将date转为yyyy-mm-dd)

将Java.Util.Date转换为Java.Sql.Date时出错(java 将date转为yyyy-mm-dd)

我在函数上发现错误,从DatatypeFactory df初始化newInstance()方法后,它显示错误结果,我得到了另一个错误:

java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date

我只是将包裹名称从

java.util.Date into java.SQL.Date

然后投射:

Date dateStarting  = (Date) jDateChooserStart.getDate();Date dateEnding    = (Date) jDateChooserEnd.getDate();

答案1

小编典典

这是不可能的 java.util.Datejava.sql.Date。您需要从一种类型 转换 为另一种类型:

java.util.Date utilStartDate = jDateChooserStart.getDate();java.sql.Date sqlStartDate = new java.sql.Date(utilStartDate.getTime());

ClassCastException:无法将java.util.Date强制转换为java.sql.Date

ClassCastException:无法将java.util.Date强制转换为java.sql.Date

您好,我的代码正在抛出ClassCastException。StackTrace显示:

java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
    at com.affiliate.DAO.AffiliateDAO.insertAffiliate(AffiliateDAO.java:48)

即@ ps.setDate(6,(Date)affiliate.getDate()); 在DAO

以下是我的servlet:

   protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
    Affiliate af= new Affiliate();

    af.setFisrtName(request.getParameter("txtFname"));
    af.setLastName(request.getParameter("txtLname"));
    af.setGender(request.getParameter("txtGender"));
    af.setCategory(request.getParameter("txtCategory"));
    String dob=(request.getParameter("txtDob"));
    SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");  
    Date date;
    try {
        date = (Date)formatter.parse(dob);
        af.setDate(date);
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    af.setAge(Integer.parseInt(request.getParameter("txtAge")));
    af.setAddress(request.getParameter("txtAddr"));
    af.setCountry("India");
    af.setState(request.getParameter("txtState"));
    af.setCity(request.getParameter("txtCity"));
    af.setPinCode(Integer.parseInt(request.getParameter("txtPin")));
    af.setEmailId(request.getParameter("txtEmail"));
    af.setStd(Integer.parseInt(request.getParameter("txtStd")));
    af.setContactNo(Integer.parseInt(request.getParameter("txtPhone")));
    af.setMobileNo(Long.parseLong(request.getParameter("txtMobile"),10));

AffiliateService afs=new AffiliateService();
**afs.createAffiliate(af);**
}

以下是我的DAO:

public void insertAffiliate(Affiliate affiliate){
    String sql="INSERT INTO REGISTER " +"(id,FisrtName,LastName,Gender,Category,DateOfBirth,Age,Address,Country,State,City,PinCode,EmailId,Std,ContactNo,MobileNo)VALUES(?,?,?)";
    Connection conn = null;

    try {
        **conn = dataSource.createConnection();**
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setInt(1,affiliate.getId());
        ps.setString(2,affiliate.getFisrtName());
        ps.setString(3,affiliate.getLastName());
        ps.setString(4,affiliate.getGender());
        ps.setString(5,affiliate.getCategory());
        ***ps.setDate(6,(Date) affiliate.getDate());***
        ps.setInt(7,affiliate.getAge());
        ps.setString(8,affiliate.getAddress());
        ps.setString(9,affiliate.getCountry());
        ps.setString(10,affiliate.getState());
        ps.setString(11,affiliate.getCity());
        ps.setInt(12,affiliate.getPinCode());
        ps.setString(13,affiliate.getEmailId());
        ps.setInt(14,affiliate.getStd());
        ps.setInt(15,affiliate.getContactNo());
        ps.setLong(16,affiliate.getMobileNo());

        ps.executeUpdate();
        ps.close();

    } catch (SQLException e) {
        throw new RuntimeException(e);

    } finally {
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {}
        }
    }
}

以下是我的DTO:

public class Affiliate {

@NotNull
    @Past
    Date date;

public Date getDate() {
        return date;
    }
    public void setDate(Date date) {
        this.date = date;
    }

请在这方面帮助我

java.util.Date java.sql.Date java.util.Date,String,long 类型数据之间的转化

java.util.Date java.sql.Date java.util.Date,String,long 类型数据之间的转化

java.util.date :常用工具类

java.sql.date:存入sql数据库时,需要用到的类,其中java.util.date是java.sql.date的父类

 

问题列表:

1)java.sql.date 转化为 java.util.date

2)  java.util.date 转化为 java.sql.date

3) long ==》java.util.date

4) java.util.date ===>long

5) java.util.date ==>String

6) String ==java.util.date

7) java.util.date 之间的大小比较

 

1)java.sql.date 转化为 java.util.date

public Date SqlDateToUtDate(java.sql.Date sd){
    return new Date(sd.getTime());
}

2)  java.util.date 转化为 java.sql.date

public java.sql.Date UtDateToSqlDate(Date ud){
    return new java.sql.Date(ud.getTime());
}

3) long ==》java.util.date

long date= 14830682769461;

Date date1=new Date(date);

  

4) java.util.date ===>long

Date date = new Date();
long dateTime = date.getTime();

 

5) java.util.date ==>String

 

Date date = new Date();//获取当前时间

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

 String sDate=df.format(date);

 

6) String ==java.util.date

 

String sDate="2001.12.12-08.23.21";

  DateFormat df = new SimpleDateFormat("yyyy.MM.dd-HH.mm.ss"); 

  try {

 Date d = df.parse(dStr);


} catch (ParseException pe) {

 System.out.println(pe.getMessage());

}

 

 

 

7) java.util.date 之间的大小比较
/**
 验证是否超出有效期
* 没有超出 true
* 超出 false
*
* @param createTime 是一个开始时间
* @param valTime 是一个有效期时间 对于long类型数据 1秒 相当于 long型数据 1000;1分钟相当1000*60
* @return

  进行时间大小比较的时候,可以转化为long类型数据进行比较
*/
public boolean isBeyondTime(Date createTime, long valTime_l) {

// 获得当前时间的long
long date_l = System.currentTimeMillis();

long createTime_l = createTime.getTime();

if (date_l - createTime_l <= valTime_l) {
return true;
} else {
return false;
}
}
 



 

 

 

 

 

 

 

 

 

 

 

 

java.util.Date,java.sql.Date 与字符串之间的相互转换

java.util.Date,java.sql.Date 与字符串之间的相互转换

public class TestDate {

	/**
	 * @param args
	 * @throws Exception 
	 */
	public static void main(String[] args) throws Exception {
		// TODO 自动生成的方法存根
		//String ------->java.util.Date----------->java.sql.Date
		String s="1997-01-23";
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
		
		
		//字符串转换成日期
		java.util.Date utilDate=sdf.parse(s);
		
		
		//日期转换成字符串
		String s2=sdf.format(utilDate);
		System.out.println(s2);
		
		java.sql.Date sqlDate=new java.sql.Date(utilDate.getTime());
		
		System.out.println(sqlDate);
	}

}


java.util.Date到java.sql.Date的转换给出错误的月份

java.util.Date到java.sql.Date的转换给出错误的月份

考虑以下代码段:

Calendar futureDate = Calendar.getInstance();
int year = 2011;
int month = 11;
int day = 14;
futureDate.set(year,month,day);
System.out.println(futureDate.toString());
java.sql.Date sqlDate  = new java.sql.Date( futureDate.getTime().getTime());

从futureDate.toString()的打印输出为:

..... YEAR = 2011,MONTH = 11,WEEK_OF_YEAR = 43,WEEK_OF_MONTH = 4,DAY_OF_MONTH
= 14,DAY_OF_YEAR = 289,DAY_OF_WEEK = 1,DAY_OF_WEEK_IN_MONTH = 3,AM_PM = 0,HOUR
= 11,HOUR_OF_DAY = 11,MINUTE = 32,SECOND = 51,MILLISECOND = 117,ZONE_OFFSET =
-18000000,DST_OFFSET = 3600000]

这表明Calendare对象具有正确的日期。但是,在转换为sql日期并存储在数据库中(MySQL通过JDBC)之后,该日期的MySQL表显示为“
2011-12-14”,而不是“ 2011-11-14”。我本来会怀疑语言环境和时区,但是这些会导致一天中的时间而不是日期的月份中出现差异。

关于我做错了什么的任何线索?

我们今天的关于将Java.Util.Date转换为Java.Sql.Date时出错java 将date转为yyyy-mm-dd的分享已经告一段落,感谢您的关注,如果您想了解更多关于ClassCastException:无法将java.util.Date强制转换为java.sql.Date、java.util.Date java.sql.Date java.util.Date,String,long 类型数据之间的转化、java.util.Date,java.sql.Date 与字符串之间的相互转换、java.util.Date到java.sql.Date的转换给出错误的月份的相关信息,请在本站查询。

本文标签: