将字符串转换为SQL时间

7
我们如何在Java中使用MySQL将字符串转换为时间类型? 所以,字符串------->java.sql.time 谢谢。

1
现代注释:自JDBC 4.2以来,您不应再使用java.sql.Time,而应使用java.time.LocalTime。请参见Basil Bourque的答案 - Ole V.V.
4个回答

13

这完全取决于你的String的格式,所以我建议使用SimpleDateFormat将字符串解析为java.util.Date;然后,您可以从该日期中提取毫秒时间值,并将其传递到java.sql.Time()中。像这样:

String s = /* your date string here */;
SimpleDateFormat sdf = new SimpleDateFormat(/* your date format string here */);
long ms = sdf.parse(s).getTime();
Time t = new Time(ms);

10
java.sql.Time.valueOf("String");

2
您可以使用以下代码:
java.sql.Time.parse("String");

但是这已经过时了,现在被DateFormat Parse所取代。


1
更新:java.time.LocalTime 本问题和其他答案使用了一些非常有缺陷的日期时间类,这些类早在多年前就被现代的JSR 310中定义的java.time类所取代。 要表示仅包含时间而不包含日期、时区或UTC偏移量的值,请使用java.time.LocalTime类。 要解析标准ISO 8601格式的文本:
LocalTime t = LocalTime.parse( "15:30" ) ;
使用 JDBC 4.2 及更高版本将数据写入数据库:
myPreparedStatement.setObject( … , t ) ;
从数据库中读取:
LocalTime t = myResultSet.getObject( … , LocalTime.class ) ;
在 Stack Overflow 上搜索以获取更多信息。日期时间问题已经得到广泛解决。另外,请参阅 Oracle 的 教程

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,