【问题标题】:Convert String to SQL Date将字符串转换为 SQL 日期
【发布时间】:2013-07-12 22:02:05
【问题描述】:

我有一个String,其中包含日期字符串,例如格式为 MM-dd-yy 的 12-28-18。我希望将此参数传递给 Oracle 数据库中的存储过程。

因此,我试图将此字符串转换为java.sql.Date。以下是我要转换的方法:

DateFormat df = new SimpleDateFormat("MM-dd-yy");
java.util.Date date1 = df.parse(valueobject.getDate());
java.sql.Date date2 = new java.sql.Date(date1.getTime())

但是,它导致ParseException。 无法弄清楚为什么它在解析过程中失败。 对此的任何帮助都会很棒!

【问题讨论】:

  • new SimpleDateFormat("MM-dd-yy", Locale.English);?
  • @johnchen902 添加区域设置不起作用!
  • 试过这个:new SimpleDateFormat("MM-dd-yy", Locale.ENGLISH).parse("12-28-18"); 但没有抛出异常。
  • valueobject.getDate() 是字符串吗?只是为了仔细检查。我见过有人不小心尝试将日期解析为日期。

标签: java string date jdbc oracle11g


【解决方案1】:

试试这个

    DateFormat df = new SimpleDateFormat("EEE MM-dd-yy hh:mm:ss");
    Date d=new Date();
    String date1 = df.format(d);
    java.sql.Date date2 = new java.sql.Date(d.getTime());
    System.out.println(date1);
    System.out.println(df.format(date2));

或者

    DateFormat df = new SimpleDateFormat("MM-dd-yy");
    Date d=new Date();
    String date1 = df.format(d);
    java.sql.Date date2 = new java.sql.Date(d.getTime());
    System.out.println(date1);
    System.out.println(df.format(date2));

【讨论】:

    【解决方案2】:

    这对我有用,也许 yourvalueobject.getDate() 不返回字符串。请检查!!

    SimpleDateFormat format = new SimpleDateFormat("MM-dd-yyyy");
        Date parsed = format.parse("07-15-2013");
        java.sql.Date sql = new java.sql.Date(parsed.getTime());
    

    与您的代码相似并且运行良好!

    【讨论】:

      【解决方案3】:

      使用 valueOf()

      String date = "2000-11-01"; // YYYY-MM-DD
      java.sql.Date sqlDate = java.sql.Date.valueOf(date);
      

      【讨论】:

        猜你喜欢
        • 2018-03-03
        • 1970-01-01
        • 2011-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-12
        • 1970-01-01
        • 2021-12-25
        相关资源
        最近更新 更多