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

前端 未结 2 356
不思量自难忘°
不思量自难忘° 2021-01-23 06:37

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.Timestam         


        
相关标签:
2条回答
  • 2021-01-23 07:05

    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

    0 讨论(0)
  • 2021-01-23 07:15

    java.time

        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSSXX");
        String dateString = "2018-10-17T22:37:10.000+0000";
        OffsetDateTime odt = OffsetDateTime.parse(dateString, formatter);
    
        System.out.println("Parsed datetime: " + odt);
    

    Output from this code is:

    Parsed datetime: 2018-10-17T22:37:10Z

    For saving into MySQL it’s good to use a datetime object, but the Timestamp class has design problems and is now long outdated. I am sorry that I don’t have the experience with MySQL, but I think the following should work:

        PreparedStatement ps = myDatabaseConnection.prepareStatement(
                "insert into my_table (my_timestamp) values (?)");
        ps.setObject(1, odt);
    

    Link: Oracle tutorial: Date Time explaining how to use java.time.

    0 讨论(0)
提交回复
热议问题