Start by using having a look at DateTimeFormatter and Parsing and Formatting for more details about how to parse and format date/time values in Java 8+
Based on your examples, something like...
String inValue = "Thu May 10 15:48:23 IST 2018";
DateTimeFormatter inFormatter = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
LocalDateTime ldt = LocalDateTime.parse(inValue, inFormatter);
DateTimeFormatter outFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS", Locale.ENGLISH);
String outValue = outFormatter.format(ldt);
System.out.println(outValue);
Will print 2018-05-10 15:48:23.00
Thank you for your response. I actually want the end result as Calendar Object with required format, not a string.
Calendar
is effectively deprecated, you shouldn't be using it anymore. Even if you're not using Java 8+, you should be using the ThreeTen Backport API
Calendar
(and Date
and all other "date/time" class) are just containers of a value representing some point in time, they do not have any kind of "formatting" capabilities of their own. This is why the API has formatting classes. Keep you date/time values represented as appropriate classes until you need to display them, at that point, you should format the value to a String