[英]convert string date to sql date format
我想将此字符串“2022-01-13 14:33:07.996”转换为 java sql 日期。 我已阅读答案并将字符串转换为 java 实用日期,然后转换为 java sql 日期。 我只是不知道如何以 java sql 日期格式获取完整日期
String dateStart = "2022-01-13 14:33:07.996";
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date1 = dateFormat.parse(dateStart);
java.util.Date utilDate = date1;
java.sql.Date sqlDate = new java.sql.Date(date1.getTime());
System.out.println(sqlDate);
在输出我得到这个
2022-01-13
但我想要 java sql 日期格式的类似2022-01-13 14:33:07.996
要将日期时间值写入数据库,请使用适当的对象,而不是文本。 对于仅日期值,请使用LocalDate
。
myPreparedStatement
.setObject(
… ,
LocalDateTime
.parse( "2022-01-13 14:33:07.996" )
.toLocalDate()
)
您正在使用可怕的日期时间类,这些类在几年前被 JSR 310 中定义的现代java.time类所取代。
你说:
2022-01-13 14:33:07.996 在 java sql 日期格式
这是一个矛盾。 A java.sql.Date
object 表示仅日期,而不是带有时间的日期。
java.time.LocalDateTime
将您的输入字符串解析为LocalDateTime
,因为它缺少任何时区或偏移量指示符。
LocalDateTime ldt = LocalDateTime.parse( "2022-01-13 14:33:07.996" ) ;
java.time.LocalDate
提取日期部分。
LocalDate ld = ldt.toLocalDate() ;
写入数据库。
myPreparedStatement.setObject( … , ld ) ;
从数据库中检索。
LocalDate ld = myResultSet.getObject( … , LocalDate.class ) ;
这些问题已经在 Stack Overflow 上讨论过很多次了。 搜索以了解更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.