HOW TO CONVERT DATE STRING IN ANOTHER STRING?

Simons Hood

Total Post:70

Points:494
Posted by  Simons Hood
 1197  View(s)
Ratings:
Rate this:

How can I convert from "2014-10-13T10:41:22.863+08:00" into "2014-10-13 10:41"?

I have failed to do so:


String date = "2014-10-13T10:41:22.863+8:00";

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");

Date dateTime = null;

try {

    dateTime = dateFormat.parse(date);

} catch(ParseException e) { ... }

System.out.printf(dateTime.toString());


through : ParseException 2014-10-13T10:41:22.863+8:00

  1. Kamlakar Singh

    Post:194

    Points:1396
    Re: How to convert date string in another string?

    Try this way,hope this will help you to solve your problem.

    The Z at the end is usually the timezone offset. If you you don't need it maybe you can drop it on both sides.

    SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");

    SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd HH:mm");

    try{

        Date d = df1.parse("2014-10-13T10:41:22.863+8:00");

        System.out.println("new date format " + df2.format(d));

    }catch(Exception e){

       e.printStackTrace();

    }

  1. Pawan Shukla

    Post:38

    Points:274
    Re: How to convert date string in another string?

    If you don't need to do some operation/manipulation on the Date before printing it in correct format, then you can just directly transform the string into yyyy-MM-dd HH:mm with this:

    String date = "2014-10-13T10:41:22.863+8:00";

    date = date.substring(0, 16);  // 2014-10-13T10:41, remove value after minutes
    date = date.replace("T", " "); // 2014-10-13 10:41, replace the 'T' character

    System.out.println(date);      // 2014-10-13 10:41
    Else, if you want to parse it beforehand, then change the pattern to yyyy-MM-dd'T'HH:mm (note the additional of string constant 'T').

    String date = "2014-10-13T10:41:22.863+8:00";

    // parse the String to Date
    SimpleDateFormat sourceFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
    Date dateTime = null;
    try {
        dateTime = sourceFormat.parse(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    System.out.println(dateTime.toString()); // Mon Oct 13 10:41:00 SGT 2014

    // print the Date in expected format
    SimpleDateFormat targetFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    System.out.println(targetFormat.format(dateTime)); // 2014-10-13 10:41
    The reason you got ParseException is because the format you use to parse (yyyy-MM-dd HH:mm) is not the same as the source (yyyy-MM-dd'T'HH:mm ...). Your SimpleDateFormatter expected whitespace instead of character 'T' after the date.

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!