How to split date and time from a datetime string?

后端 未结 8 1683
面向向阳花
面向向阳花 2020-12-11 15:53

I have a string like 8/29/2011 11:16:12 AM. I want to split that string into separate variables like

date = 8/29/2011
time = 11:16:12 AM
         


        
8条回答
  •  执念已碎
    2020-12-11 16:43

    (Edit: See Answer by Ole V.V. below for a more modern (Java 8) approach for the first version)

    One way to do is parse it to a date object and reformat it again:

        try {
            DateFormat f = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
            Date d = f.parse("8/29/2011 11:16:12 AM");
            DateFormat date = new SimpleDateFormat("MM/dd/yyyy");
            DateFormat time = new SimpleDateFormat("hh:mm:ss a");
            System.out.println("Date: " + date.format(d));
            System.out.println("Time: " + time.format(d));
        } catch (ParseException e) {
            e.printStackTrace();
        }
    

    If you just want to slice it into date-time pieces, just use split to get pieces

        String date = "8/29/2011 11:16:12 AM";
        String[] parts = date.split(" ");
        System.out.println("Date: " + parts[0]);
        System.out.println("Time: " + parts[1] + " " + parts[2]);
    

    or

        String date = "8/29/2011 11:16:12 AM";
        System.out.println("Date: " + date.substring(0, date.indexOf(' ')));
        System.out.println("Time: " + date.substring(date.indexOf(' ') + 1));
    

提交回复
热议问题