当前位置:编程学习 > JAVA >>

有关jdbc数据库存储日期问题

String birthday = "1985-09-22";
String insertSql = "INSERT INTO users (name,age ,birthday) VALUES (?,?,?)";
String querySql = "Select id,name,age,birthday FROM users Where id > ? ";
java.util.Date date2 = new SimpleDateFormat("yyyy-mm-dd")
.parse(birthday);
// Date date1 = new Date(1988);
try
{
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
pstmt1 = conn.prepareStatement(insertSql);
pstmt2 = conn.prepareStatement(querySql);
pstmt1.setString(1, "陈珺");
pstmt1.setInt(2, 27);
java.sql.Date date1 = new java.sql.Date(date2.getTime());
pstmt1.setDate(3, date1);
pstmt1.executeUpdate();

代码执行没什么问题,但是每次存储进数据库后,日期总是和我写的日期不同,年份和天数都正确,但月份不管怎么改都是01,例如以上代码执行,存入的日期会变成“1985-01-22,有哪位大神知道问题在哪么,虚心求教。。。 --------------------编程问答-------------------- String birthday = "1985-09-22";
java.util.Date date2 = new SimpleDateFormat("yyyy-mm-dd")
.parse(birthday);
java.sql.Date date1 = new java.sql.Date(date2.getTime());
貌似可以直接:java.sql.Date date1 = new java.sql.Date.valueOf("1985-09-22"),不用那么复杂吧 --------------------编程问答--------------------  new SimpleDateFormat("yyyy-MM-dd")
--------------------编程问答-------------------- new SimpleDateFormat("yyyy-MM-dd") 
这里把月改成大写试试,我记得小写好像有的地方会当成分钟来转化,这样月份就变成一月了。 --------------------编程问答-------------------- 同意楼上的说法,应该是格式的问题 --------------------编程问答-------------------- ("yyyy-mm-dd")改成("yyyy-MM-dd")

--------------------编程问答-------------------- ("yyyy-mm-dd")改成("yyyy-MM-dd")

补充:Java ,  Web 开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,