Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中将日历转换为java.sql.Date?_Java_Sql_Calendar - Fatal编程技术网

如何在java中将日历转换为java.sql.Date?

如何在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转换为日期类型以插入到表中。

是否尝试了
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());