import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;

public class Main {
    public static void main(String[] args) throws ParseException {
        DateFormat parser = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX", Locale.ENGLISH);
        parser.setTimeZone(TimeZone.getTimeZone("UTC"));
        Date dateTime = parser.parse("2018-05-23T23:18:31.000Z");

        DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
        formatter.setTimeZone(parser.getTimeZone());
        String formattedDateTimeString = formatter.format(dateTime);
        System.out.println(formattedDateTimeString);
    }
}