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

Posted

技术标签:

【中文标题】如何在 Java 中将日历转换为 java.sql.Date?【英文标题】:How to convert Calendar to java.sql.Date in Java? 【发布时间】:2012-02-25 03:12:15 【问题描述】:
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();

我想将 cal 转换为 Date 类型以插入到表格中。

【问题讨论】:

大概你想要java.sql.Date而不是java.util.Date 【参考方案1】:
Calendar cal = Calendar.getInstance(); //This to obtain today's date in our Calendar var.

java.sql.Date date = new Date (cal.getTimeInMillis());

【讨论】:

【参考方案2】:

有一个getTime() 方法(不确定为什么不叫getDate)。

编辑:刚刚意识到您需要一个 java.sql.Date。使用cal.getTimeInMillis() 的答案之一就是您所需要的。

【讨论】:

它是getTime(),因为它返回准确的时间,如Wed Dec 05 10:57:35 GMT+03:30 2018,而不仅仅是日期。 getTime() 返回 java.util.Date 而不是 java.sql.Date。问题是获取 java.sql.Date。【参考方案3】:

stmt.setDate(1, new java.sql.Date(cal.getTime().getTime()));

【讨论】:

【参考方案4】:

你试过cal.getTime()吗?这将获取日期表示。

您可能还想查看 javadoc。

【讨论】:

是的,但我一直需要使用(日期)进行投射。 那是因为你需要一个 java.sql.Date(就像 James Jithin 说的那样),而 Calendar.getTime() 为你提供了一个 java.util.Date。【参考方案5】:

这是将Calendar 值转换为Date 实例的简单方法。

Calendar C = new GregorianCalendar(1993,9,21);

Date DD = C.getTime();

System.out.println(DD);

【讨论】:

专问java.sql.Date的问题。有几个像这样的答案,都假设 java.util.Date。当然,有些人会说将它们命名为相同的东西是一个愚蠢的想法。【参考方案6】:

我发现这段代码有效:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss");    
Calendar calendar = new GregorianCalendar(2013,0,31);
System.out.println(sdf.format(calendar.getTime()));  

您可以在本教程中找到其余内容:http://www.mkyong.com/java/java-date-and-calendar-examples/

【讨论】:

【参考方案7】:

转换很容易,设置日期和时间有点棘手。这是一个例子:

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()));

【讨论】:

【参考方案8】:

使用stmt.setDate(1, new java.sql.Date(cal.getTimeInMillis()))

【讨论】:

以上是关于如何在 Java 中将日历转换为 java.sql.Date?的主要内容,如果未能解决你的问题,请参考以下文章

在 Java 中将字符串转换为日历对象

如何在熊猫中将日历年转换为水年

无法在 Spring Data Cloud Spanner 中将 java.sql.Timestamp 转换为 com.google.cloud.Timestamp

在 impala 中将儒略日期转换为公历日期

如何在javascript中将日期时间从用户时区转换为EST [重复]

在 Laravel 中将日期和时间转换为 Jalali