java - 如何将 java.util.Date 对象与 java.sql.Time 对象结合起来?

标签 java date time

我正在从数据库中提取日期和时间。它们存储在单独的字段中,但我想将它们组合成一个 java.util.Date 对象,以适本地反射(reflect)日期/时间。

这是我原来的方法,但它有缺陷。我总是以一个比应该的时间晚 6 小时的日期/时间结束。我认为这是因为时间和日期都有时区偏移,我真的只需要其中之一就有时区偏移。

关于如何执行此操作以提供正确的日期/时间的任何建议?

import java.sql.Time;
import java.util.Calendar;
import java.util.Date;

import org.apache.commons.lang.time.DateUtils;
    public static Date combineDateTime(Date date, Time time)
        {
            if (date == null)
                return null;
            Date newDate = DateUtils.truncate(date, Calendar.DATE);
            if (time != null)
            {
                Date t = new Date(time.getTime());
                newDate = new Date(newDate.getTime() + t.getTime());
            }
            return newDate;
        }

最佳答案

我会将日期和时间都放入日历对象中,然后使用各种日历方法从第二个对象中提取时间值并将它们放入第一个对象中。

  Calendar dCal = Calendar.getInstance();
  dCal.setTime(date);
  Calendar tCal = Calendar.getInstance();
  tCal.setTime(time);
  dCal.set(Calendar.HOUR_OF_DAY, tCal.get(Calendar.HOUR_OF_DAY));
  dCal.set(Calendar.MINUTE, tCal.get(Calendar.MINUTE));
  dCal.set(Calendar.SECOND, tCal.get(Calendar.SECOND));
  dCal.set(Calendar.MILLISECOND, tCal.get(Calendar.MILLISECOND));
  date = dCal.getTime();

关于java - 如何将 java.util.Date 对象与 java.sql.Time 对象结合起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/344128/

相关文章:

java - 当我更改数组的元素时,为什么我的方法不返回 false?

java - gRPC 不生成 java_plugin

java - SimpleDateFormat 解析丢失时区

php - 我如何在 php 中确定给定日期的第 n 个工作日

c - 如何从 time_t 中提取小时数?

java - 如何将@query jpa结果导出到.dat文件/

java - 如何在 Android 中调整 LayerDrawable 中的 Drawable 大小和位置

mysql - SQL:如何正确计算任何 DATE_TIME 和 CURRENT_TIMESTAMP?

c++ - 重置对源文件更改的检测

mysql - 无法将字符串格式化为持续时间