Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串转换为Java.sql.Date_Java_Mysql_String_Date_Jdbc - Fatal编程技术网

将字符串转换为Java.sql.Date

将字符串转换为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/

在查看了stackoverflow中的许多线程之后,似乎找不到我要找的正确方法。如果有人能发光一点,那就太好了

因此,我用SQL日期填充了一个JCombo框,但在这样做的过程中,我使用SimpleDataFormat将它们格式化为一个字符串,格式为dd/MM/yyyy

当程序运行时,他可以选择一个特定的日期来查询数据库,这里就是问题所在

我用String.split制作了一个格式为yyyy/MM/dd的字符串。将其保存到一个数组中,并在另一个字符串中排序

有没有办法将这个字符串(2014/04/13)转换成SQL日期,这样我就可以查询我的数据库了,还是我的做法不正确

谢谢您,

使用

这里举一个例子:

    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
      类已被
      java.time.LocalDate
      取代。感谢Braj的工作,我刚刚插入了格式化字符串,而不是“2014/04/13”。在过去的两个小时里,它真的很困扰我。没有想到引入java.util.date,尽管java.sql.date是一个子类。再次干杯是的,你可以用同样的方式
      java.util.date newUtilDate=new java.util.date(sqlDate.getTime());
      I logic behind是两个类的构造函数中使用的毫秒数。
      getTime()
      返回自1970年1月1日00:00:00 GMT以来由该日期对象表示的毫秒数。您的数据库中是否有早于1970年1月1日的日期?
      myPreparedStatement.setObject( … , localDate ) ;