Search code examples
javatimestampsimpledateformatdatetime-parsingunparseable

java to mysql. I need convert from string parametre to timestamp


I'm trying to parser String to Timestamp because I need to save this data on bbdd mysql.

String dateString: "2018-10-17T22:37:10.000+0000";
java.sql.Timestamp timeStampDate = null;
try {
        DateFormat formatter;
        formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
        Date date = (Date) formatter.parse(dateString);
        timeStampDate = new Timestamp(date.getTime());

    } catch (ParseException e) {
        log.debug("ERROR parser String to Timestamp to save bbdd. ", e.getMessage());
    }

When I run my app I get this catch message:

ERROR parser String to Timestamp to save bbdd. Unparseable date: "2018-10-17T22:37:10.000+0000"

Can anybody help me?


Solution

  • change your mask to

    DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSS");

    so you have

    java.sql.Timestamp timeStampDate = null;
    String dateString = "2018-10-17T22:37:10.000+0000";
    
    try {
        DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
        Date date = formatter.parse(dateString);
        timeStampDate = new Timestamp(date.getTime());
    
    } catch (ParseException e) {
        e.printStackTrace();
    }
    

    By the way you should not need to cast the Date

    Apologies for my slackness, in my haste I did not test the output and as per @andreas comment, the correct mask is actually yyyy-MM-dd'T'HH:mm:ss.SSSZ