我们如何在java中用mysql将字符串转换为时间类型So String-------〉java.sql.time谢谢你的好意。
u0njafvf1#
这完全取决于String的格式,因此我将使用SimpleDateFormat将字符串解析为java.util.Date;然后从Date中提取毫秒时间值并将其传递给java.sql.Time()。如下所示:
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);
jmp7cifd2#
java.sql.Time.valueOf("String");
zzlelutf3#
您可以使用以下代码:
java.sql.Time.parse("String");
但这是不赞成的,并取代了DateFormat解析。
lf3rwulv4#
java.time.LocalTime
Question和其他Answers使用了有严重缺陷的日期-时间类,这些类在几年前就被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 ) ;
搜索栈溢出以了解更多。日期-时间问题已被广泛解决。请参阅tutorial by Oracle。
4条答案
按热度按时间u0njafvf1#
这完全取决于
String
的格式,因此我将使用SimpleDateFormat
将字符串解析为java.util.Date
;然后从Date中提取毫秒时间值并将其传递给java.sql.Time()
。如下所示:jmp7cifd2#
zzlelutf3#
您可以使用以下代码:
但这是不赞成的,并取代了DateFormat解析。
lf3rwulv4#
更新:
java.time.LocalTime
Question和其他Answers使用了有严重缺陷的日期-时间类,这些类在几年前就被JSR 310中定义的现代 java.time 类所取代。
若要表示仅含时间的值,而不含日期、时区或UTC偏移量,请使用
java.time.LocalTime
类别。若要剖析标准ISO 8601格式的文字:
使用JDBC 4.2及更高版本写入数据库:
从数据库读取:
搜索栈溢出以了解更多。日期-时间问题已被广泛解决。请参阅tutorial by Oracle。