当前位置: 首页 > 面试题库 >

将java.util.date与java.sql.Time合并

闻人冷勋
2023-03-14
问题内容

我有一个广泛的DATE-TIME转换类,但是遇到一种无法解决的情况:

我有一个java.util.date:星期二5月10日00:00:00 BST 2011
我有一个java.sql.time:03:58:44

我需要创建一个java.util.date:2011年5月10日星期二03:58:44 BST

我想到的唯一方法是:

public static Date getDate(Date date, Time time) {
    Calendar calendar=Calendar.getInstance();
    calendar.set(date.getYear(), date.getMonth(), date.getDay(), time.getHours(), time.getMinutes(), time.getSeconds());
    return calendar.getTime();
}

完全不推荐使用的代码,并且不起作用:java.sql.Time.getYear上的java.lang.IllegalArgumentException(未知源)

有任何想法吗?


问题答案:

java.sql.Time只是java.util.Date的包装。您可以像添加两个java.util.Date对象一样使用它。

例如,将Calendar设置为java.sql.Time:

calendar.setTime(time);

现在提取小时/分钟/秒字段,即:

calendar.get(Calendar.HOUR);

接下来,将Calendar设置为java.util.Date对象,并将这三个字段添加到其时间,即:

calendar.add(Calendar.HOUR, hour);

并获取日期:

calendar.getTime();


 类似资料:
  • 问题内容: 我有两个对象:a 和a 。 将它们合并为单个的最佳方法是什么? 这些列在数据库中分别存储。我通过JDBC 和获得它们。 问题答案: 您可以创建两个Calendar实例。在第一个中,您初始化日期,在第二个中,时间。您可以从“时间”实例中提取时间值,并将其设置为“日期”。

  • 问题内容: :什么时候使用,为什么? 问题答案: 恭喜,你已经使用JDBC达到了我最喜欢的功能:Date类处理。 基本上,数据库通常至少支持三种形式的日期时间字段,即日期,时间和时间戳。它们每个在JDBC中都有一个对应的类,并且每个都进行了扩展。这三个中的每个的快速语义如下: 对应于SQL DATE,这表示它存储年,月和日,而时,分,秒和毫秒被忽略。此外,sql.Date它与时区无关。 对应于SQ

  • 本文向大家介绍java.util.Date与java.sql.Date的区别,包括了java.util.Date与java.sql.Date的区别的使用技巧和注意事项,需要的朋友参考一下 我数据库里用到了日期类型。用java编程的时候同时import了java.util.*和java.sql.*,发现直接申明Date类型 Date dt; 会报错,查了一下才发现有java.util.Date和ja

  • 问题内容: 我正在尝试将ISO 8601格式的String转换为。 Z如果与语言环境一起使用(比较示例),我发现该模式符合ISO8601。 但是,使用无法转换正确格式的String 2010-01-01T12:00:00+01:00。我必须先将其转换为2010-01-01T12:00:00+0100,而不能使用冒号。 所以,目前的解决方案是 显然不是那么好。我是否缺少某些东西或有更好的解决方案?

  • 问题内容: 我将日期以这种格式存储在SQLite数据库中: 当我以这种格式检索日期时,除小时外,其他一切都很好。时间总是如此。这是我的输出: 这是代码: 我究竟做错了什么? 问题答案: 我认为您的日期格式没有意义。没有13:00 PM。删除格式末尾的“ aaa”,或将HH转换为hh。 不过,这对我来说很好: 它将打印“ 2010年4月29日星期四CEST”。

  • 问题内容: 将对象转换为新的JDK 8 / JSR-310 的最佳方法是什么? 问题答案: 说明 尽管有名称,它代表时间轴上的一个瞬间,而不是“日期”。存储在对象中的实际数据是自1970-01-01T00:00Z(1970 GMT / UTC开始的午夜)以来的毫秒数。 中的等效类是,因此有一种方便的方法可以提供转换: 一个实例没有时区的概念。如果调用,这可能看起来很奇怪,因为相对于时区。但是,该方