如何在 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?的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Spring Data Cloud Spanner 中将 java.sql.Timestamp 转换为 com.google.cloud.Timestamp