将字符串解析为java.sql.date

迪列捷夫

我希望你能帮助我。我的输入是1993年1月22日

我的代码是

public String CreateCalendar (String titel, String startDate, String endDate, String note, String location, String email) throws SQLException, ParseException
{
    String stringToBeReturned ="";
    testConnection();

    SimpleDateFormat format = new SimpleDateFormat ("EEE MMM dd HH:mm:s zzz YYYY");

    java.util.Date utilStartDate = format.parse(startDate);
    java.util.Date utilEndDate = format.parse(startDate);
    java.sql.Date sqlStartDate = new java.sql.Date(utilStartDate.getTime());
    java.sql.Date sqlEndDate = new java.sql.Date(utilEndDate.getTime());


    String [] keys = {"title","start","end", "note", "location", "active", "email"};
    String [] values = {titel, format.parse(startDate).toString(), format.parse(endDate).toString(), note, location, "1", email};
    qb.insertInto("calendar", keys).values(values).Execute();

    return stringToBeReturned;
}

但是我收到错误java.text.ParseException:无法解析的日期:“ 22-01-1993”我在做什么错

埃姆兹

format.parse(startDate).toString()format.parse(endDate)会为您解决问题。


添加到您的第二个问题。

22-01-1993 这就是您提供数据的方式。

Fri Jan 22 00:00:00 CET 1993 这就是它的期望。

因此,我们进行更改("dd-MM-yyyy")以实际匹配它。

("EEE MMM dd HH:mm:s zzz YYYY");

这应该够了吧。


显然,PHP在Java中与Java不同,我对此进行了更新data (...)信息取自

http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html


SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:s zzz YYYY");

String startDate = new Date().toString();

产出

Fri Dec 05 23:15:39 CET 2014

这样行得通。

我现在所看到的方式不需要以下几行

java.util.Date utilStartDate = format.parse(startDate);
java.util.Date utilEndDate = format.parse(startDate);
java.sql.Date sqlStartDate = new java.sql.Date(utilStartDate.getTime());
java.sql.Date sqlEndDate = new java.sql.Date(utilEndDate.getTime());

当您输入以下内容时,一个问题22-01-1993是它与您期望的内容不匹配。您可以从中提取月,日和年,然后使用其余数据构建一个新字符串。但是,这感觉很多余。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章