如何在java中将日历转换为java.sql.Date?
我想将cal转换为日期类型以插入到表中。是否尝试了如何在java中将日历转换为java.sql.Date?,java,sql,calendar,Java,Sql,Calendar,我想将cal转换为日期类型以插入到表中。是否尝试了cal.getTime()?这将获取日期表示形式 您可能还想看看javadoc。有一个方法(不确定为什么不叫getDate) 编辑:刚刚意识到您需要一个java.sql.Date。使用cal.getTimeInMillis()的答案之一就是您所需要的。使用stmt.setDate(1,新的java.sql.Date(cal.getTimeInMillis())转换很容易,设置日期和时间有点棘手。下面是一个例子: Calendar cal; Str
cal.getTime()
?这将获取日期表示形式
您可能还想看看javadoc。有一个方法(不确定为什么不叫getDate)
编辑:刚刚意识到您需要一个java.sql.Date。使用
cal.getTimeInMillis()
的答案之一就是您所需要的。使用stmt.setDate(1,新的java.sql.Date(cal.getTimeInMillis())
转换很容易,设置日期和时间有点棘手。下面是一个例子:
Calendar cal;
String sql = "INSERT INTO ttable (dt) values (?);"
//dt is a dateTime field in ttable
PreparedStatement stmt = connection.prepareStatement(sql);
stmt = setDate(1,cal); //not working
stmt.execute();
stmt.close();
我发现这段代码有效:
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2000);
cal.set(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.HOUR_OF_DAY, 1);
cal.set(Calendar.MINUTE, 1);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
stmt.setDate(1, new java.sql.Date(cal.getTimeInMillis()));
您可以在本教程中找到其余内容:这里有一种简单的方法,可以将
日历
值转换为日期
实例
SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss");
Calendar calendar = new GregorianCalendar(2013,0,31);
System.out.println(sdf.format(calendar.getTime()));
stmt.setDate(1,新的java.sql.Date(cal.getTime().getTime())
是的,但我一直需要使用(Date)进行转换。这是因为您需要一个java.sql.Date(如James Jithin所说)和日历。getTime()提供了一个java.util.Date。大概您想要的是java.sql.Date
而不是java.util.Date
?这个问题专门针对java.sql.Date提出的。有几种类似的答案,都假设java.util.Date。当然,有些人会说,将它们命名为相同的东西是一个愚蠢的想法。它是getTime()
,因为它返回的是准确的时间,就像Wed Dec 05 10:57:35 GMT+03:30 2018
,而不仅仅是日期。getTime()返回的是java.util.date而不是java.sql.date。问题是获取java.sql.Date。
Calendar C = new GregorianCalendar(1993,9,21);
Date DD = C.getTime();
System.out.println(DD);
Calendar cal = Calendar.getInstance(); //This to obtain today's date in our Calendar var.
java.sql.Date date = new Date (cal.getTimeInMillis());