如何将 java.sql.Date 和 java.sql.Time 合并到 java.util.Date?

kos*_*ych 6 java time datetime date jdbc

我有两个对象: ajava.sql.Date和 a java.sql.Time
将它们合并为单个的最佳方法是什么java.util.Date

在数据库中,这些列是分开存储的。我通过 JDBCrs.getDate("Date")rs.getTime("Time");.

ist*_*tis 5

您可以创建两个日历实例。首先初始化日期,后者初始化时间。您可以从“时间”实例中提取时间值并将它们设置为“日期”。

  // Construct date and time objects
  Calendar dateCal = Calendar.getInstance();
  dateCal.setTime(date);
  Calendar timeCal = Calendar.getInstance();
  timeCal.setTime(time);

  // Extract the time of the "time" object to the "date"
  dateCal.set(Calendar.HOUR_OF_DAY, timeCal.get(Calendar.HOUR_OF_DAY));
  dateCal.set(Calendar.MINUTE, timeCal.get(Calendar.MINUTE));
  dateCal.set(Calendar.SECOND, timeCal.get(Calendar.SECOND));

  // Get the time value!
  date = dateCal.getTime();
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考,麻烦的旧日期时间类,例如 [`java.util.Date`](https://docs.oracle.com/javase/10/docs/api/java/util/Date.html),[` java.util.Calendar`](https://docs.oracle.com/javase/10/docs/api/java/util/Calendar.html) 和 `java.text.SimpleDateFormat` 现在是 [legacy](https ://en.wikipedia.org/wiki/Legacy_system),被 [*java.time*](https://docs.oracle.com/javase/10/docs/api/java/time/package-summary .html) 类内置于 Java 8 及更高版本中。请参阅 [*教程* by Oracle](https://docs.oracle.com/javase/tutorial/datetime/TOC.html)。请参阅 Ole VV 的 Answer 中的现代方法 (2认同)