将字符串转换为Java.sql.Date
在查看了stackoverflow中的许多线程之后,似乎找不到我要找的正确方法。如果有人能发光一点,那就太好了 因此,我用SQL日期填充了一个JCombo框,但在这样做的过程中,我使用SimpleDataFormat将它们格式化为一个字符串,格式为dd/MM/yyyy 当程序运行时,他可以选择一个特定的日期来查询数据库,这里就是问题所在 我用String.split制作了一个格式为yyyy/MM/dd的字符串。将其保存到一个数组中,并在另一个字符串中排序 有没有办法将这个字符串(2014/04/13)转换成SQL日期,这样我就可以查询我的数据库了,还是我的做法不正确 谢谢您,使用 这里举一个例子:将字符串转换为Java.sql.Date,java,mysql,string,date,jdbc,Java,Mysql,String,Date,Jdbc,在查看了stackoverflow中的许多线程之后,似乎找不到我要找的正确方法。如果有人能发光一点,那就太好了 因此,我用SQL日期填充了一个JCombo框,但在这样做的过程中,我使用SimpleDataFormat将它们格式化为一个字符串,格式为dd/MM/yyyy 当程序运行时,他可以选择一个特定的日期来查询数据库,这里就是问题所在 我用String.split制作了一个格式为yyyy/MM/dd的字符串。将其保存到一个数组中,并在另一个字符串中排序 有没有办法将这个字符串(2014/04/
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
java.lang.Date langDate = sdf.parse("2014/04/13");
java.sql.Date sqlDate = new java.sql.Date(langDate.getTime());
有没有办法将此字符串(2014/04/13)转换为SQL日期
示例代码:
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
try {
java.util.Date utilDate = format.parse("2014/04/13");
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println(sqlDate);
} catch (ParseException e) {
e.printStackTrace();
}
输出:
2014-04-13
使用SimpleDataFormat
将字符串解析为java.util.Date
使用构造函数
tl;博士
java.time
现代方法使用java.time类取代了可怕的日期
/日历
/简单格式
类
该类表示一个只包含日期的值,不包含一天中的时间,也不包含或
定义与输入字符串匹配的格式模式
String input = "23/01/2018" ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu" ) ;
LocalDate localDate = LocalDate.parse( input , f ) ;
String output = localDate.toString() ; // Generate text in standard ISO 8601 format.
JDBC4.2
从JDBC4.2开始,我们可以与数据库交换java.time对象。使用智能对象而不是哑文本进行数据库交互
myPreparedStatement.setObject( … , localDate ) ;
关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,& 该项目现已启动,建议迁移到类 要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是 您可以直接与数据库交换java.time对象。使用兼容的或更高版本。不需要字符串,也不需要
java.sql.*
类
从哪里获得java.time类
- 、和更高版本-标准Java API的一部分,带有捆绑实现。
- Java9添加了一些次要功能和修复
- 及
- 大多数java.time功能都在中向后移植到Java6和Java7
-
- 更高版本的Android捆绑包实现了java.time类
- 对于早期的Android(很抱歉你用
代替mm
。这是错误的。我已经发布了它。请再次查看。仅供参考,设计糟糕的mm
类已被java.sql.Date
取代。感谢Braj的工作,我刚刚插入了格式化字符串,而不是“2014/04/13”。在过去的两个小时里,它真的很困扰我。没有想到引入java.util.date,尽管java.sql.date是一个子类。再次干杯是的,你可以用同样的方式java.time.LocalDate
I logic behind是两个类的构造函数中使用的毫秒数。java.util.date newUtilDate=new java.util.date(sqlDate.getTime());
返回自1970年1月1日00:00:00 GMT以来由该日期对象表示的毫秒数。您的数据库中是否有早于1970年1月1日的日期?getTime()
myPreparedStatement.setObject( … , localDate ) ;