从字符串转换为TimeStamp数据类型

时间:2014-07-12 17:01:14

标签: java timestamp

我想将此转换:17:26:54转换为TimeStamp数据类型。我需要将它输入数据库。我该怎么做呢? 我有一个字符串变量中的数据 我正在使用java。 我从另一个源提取此数据,我需要将其推送到数据库,其中时间戳列定义为TimeStamp类型。我使用JDBC将数据从java程序推送到MySQL。 所以我需要一个解决方案将字符串:17:26:54转换为timeStamp数据类型,以便可以将其输入数据库而不会抛出sql异常错误。

编辑:我不需要timeStamp的日期部分,因为我不在计算中的任何地方使用它,也没有选择从生成时间信息的源中提取它。

3 个答案:

答案 0 :(得分:2)

使用PreparedStatement#setTime()PreparedStatement#setTimestamp()插入java.sql.Timejava.sql.Timestamp

将String转换为Date或Timestamp使用SimpleDateFormat

示例代码:

 String time="12/07/2014 17:26:54";

 SimpleDateFormat format=new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
 Date date=format.parse(time);

如果你尝试下面的示例代码,那么默认日期将是1970年1月1日

 String time="17:26:54";

 SimpleDateFormat format=new SimpleDateFormat("HH:mm:ss");
 Date date=format.parse(time);

如何将Java日期转换为SQL日期?

 java.util.Date javaDate=new java.util.Date();
 java.sql.Date sqlDate=new java.sql.Date(javaDate.getTime());

  

如何将其插入数据库时​​间戳数据类型?

示例代码:

String time="17:26:54";

SimpleDateFormat format=new SimpleDateFormat("HH:mm:ss");
Date date=format.parse(time);

...

PreparedStatement stmt = conn
        .prepareStatement("insert into test(message,time) values(?,?)");
stmt.setString(1, "This is message");
stmt.setTimestamp(2, new java.sql.Timestamp(date.getTime()));
stmt.executeUpdate();

查找complete sample code

答案 1 :(得分:0)

考虑DateFormat类将字符串转换为java.util.Date实例。

java.sql.Timestamp可以使用长日期表示构建,可以通过java.util.Date方法从getTime()类实例获取。

答案 2 :(得分:0)

根据你的意见

  

对我来说无关紧要,因为我不需要约会

将其设为TIME类型的列。然后根据getting started with JDBC guide

  

用于SQL TIME信息的java.sql.Time。 java.util.Date基类的年,月和日字段设置为1970,1月和1。这是Java纪元中的“零”日期。

Time构造函数,

long millis = (hour * 3600 * 1000) + (minutes * 60 * 1000) + (seconds * 1000);
java.sql.Time time = new java.sql.Time(millis);