当前位置:  开发笔记 > 编程语言 > 正文

如何将java.util.Date对象与java.sql.Time对象组合?

如何解决《如何将java.util.Date对象与java.sql.Time对象组合?》经验,为你挑选了2个好方法。

我正在从数据库中撤回日期和时间.它们存储在单独的字段中,但我想将它们组合成一个适当反映日期/时间的java.util.Date对象.

这是我原来的方法,但它有缺陷.我总是得到一个6小时的日期/时间.我认为这是因为Time有一个时区偏移量和Date,我真的只需要其中一个来获得时区偏移量.

有关如何做到这一点的任何建议,以便它会给我正确的日期/时间?

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;
        }

Paul Tomblin.. 10

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

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

如果有更好的方法可以请发布吗? (2认同)


Steve McLeod.. 5

在执行这些类型的事情时,请使用Joda Time而不是Java自己的Date类.这是一个非常优越的日期/时间api,使您尝试做的事情非常简单和可靠.



1> Paul Tomblin..:

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

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


如果有更好的方法可以请发布吗?

2> Steve McLeod..:

在执行这些类型的事情时,请使用Joda Time而不是Java自己的Date类.这是一个非常优越的日期/时间api,使您尝试做的事情非常简单和可靠.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有