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

如何将时间从java.util.Date存储到java.sql.Date

杨和蔼
2023-03-14
问题内容

我想转换java.util.Date为,java.sql.Date但是我也想要小时,分钟和秒,但是java.sql.Date只能用于存储date(没有时间)。我尝试了下面的代码,但它只给出java.sql.Date对象的年,月和日。

SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
Date parsed = format.parse("20110210120534");
System.out.println(format.parse("20110210120534"));
java.sql.Date sql = new java.sql.Date(parsed.getTime());
System.out.println("SQL date is= "+sql);

电流输出:

2011-02-10

所需的输出:

2011-02-10 12:05:34

问题答案:

java.sql.Date类型仅用于存储日期(无时间)信息,因为它映射到DATE不存储时间的SQL
类型。其toString()方法的作用是:

以日期转义格式yyyy-mm-dd格式化日期。

要获得所需的输出,可以使用java.sql.Timestamp,它存储日期
时间信息,并映射到SQL
TIMESTAMP类型。它的toString()方法输出您需要的内容:

以JDBC时间戳转义格式格式化时间戳:yyyy-mm-dd hh:mm:ss.fffffffff,其中ffffffffff表示纳秒。

例:

java.text.DateFormat format = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
java.util.Date date = format.parse("20110210120534");
java.sql.Timestamp timestamp = new java.sql.Timestamp(date.getTime());
System.out.println(timestamp); // prints "2011-02-10 12:05:34.0"


 类似资料:
  • 问题内容: 我使用了一个新的Date()对象来填充MySQL DB中的一个字段,但是存储在该字段中的实际值在我的本地时区中。 如何配置MySQL以将其存储在UTC / GMT时区? 我认为,配置连接字符串会有所帮助,但我不知道如何。连接字符串中有许多属性,例如useTimezone,serverTimzone,useGmtMillisForDatetimes,useLegacyDatetimeCo

  • 问题内容: 我得到一个在一个表上(重复键)违反唯一性约束。本质上,我的表如下所示: 唯一性约束在上;也就是说,没有2条记录可以具有相同的日期/时间“时间戳”。 在将记录插入该表如下所示: 因此,您可以看到我正在使用(“现在”)并将其转换为实例。 我看到的确切错误(重复键)一直抱怨我试图将其插入表中,但该错误已经存在。因此,很明显,我使用了错误的Date API,并且插入了具有无效时间成分的日期,从

  • 问题内容: 我需要将时间戳字符串转换为。例如: 至 这里是月,日期,年,小时,分钟和秒。 问题答案: 您 可以 这样做: 但我 强烈 建议您改用Joda Time。从长远来看,它是一个更好的日期/时间库。特别是,Joda Time中的格式化程序/解析器是线程安全的,因此您可以自由和静态地重用它们。 不是 线程安全的,因此您需要为每个线程创建一个线程,或使用一个块序列化对其的访问。

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

  • 问题内容: 如何复制到外部存储保持,以便以后可以共享首选项。 试图读取并另存为一个文件,创建了类型,但我需要一个。想过遍历应用程序的内部存储和复制文件,然后将其放入外部存储,但这可能太复杂了。 真的很想知道是否存在一种简单而明智的方式来传递`sharedpreferences。 问题答案: 使用此代码, 并取回它, 注意 使用此代码只能处理字符串类型首选项,